使用Sun的XJC建立Java code時,預設遇xml schema中有fixed attribute時,不會自動把它轉成Java的constant,要達到這個目的,必需客製化XJC的 binding方式。作法如下(XJC提供inline及external的customization,其中inline的客製化是直接把客製化設定寫在要進行轉換的xml schema中;而exetrnal的customization則是另外寫在一個外部檔案,這裡使用external customization為例子)
- 撰寫customization檔案(xjc根目錄下的 samples/external-customize 子目錄有更詳細的例子)
<jxb:bindings version="1.0"
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<jxb:bindings schemaLocation="ExercisePrescription - reference - 20110530 hugang.xsd" node="/*">
<jxb:globalBindings
fixedAttributeAsConstantProperty="true"/>
</jxb:bindings>
</jxb:bindings> - 執行轉換指令
xjc xml_schema_to_convert -b customization_file_name - 如此一來,xjc在轉換java code時,會把fixed value轉成java constant