JAXB xjc的文档说:
-b 指定要处理的一个或多个外部绑定文件。 (每个绑定文件必须具有自己的“-b”开关。)外部绑定文件的语法非常灵活。您可能有一个包含多个模式自定义的绑定文件,或者您可以将自定义分解为多个绑定文件:
xjc schema1.xsd schema2.xsd schema3.xsd -b bindings123.xjb xjc schema1.xsd schema2.xsd schema3.xsd -b bindings1.xjb -b bindings2.xjb -b bindings3.xjb
此外,命令行上的模式文件和绑定文件的顺序无关紧要。
但是我在哪里可以找到这个“外部绑定文件”的文档?
答案 0 :(得分:7)
外部绑定文件记录在oracle.com上的Customizing JAXB Bindings页面
引用:
外部绑定自定义文件
通过包含绑定声明的外部文件对JAXB绑定进行的自定义采用如下所示的一般形式。
<jxb:bindings schemaLocation = "xs:anyURI"> <jxb:bindings node = "xs:string">* <binding declaration> <jxb:bindings> </jxb:bindings>
schemaLocation是对远程模式的URI引用 node是一个XPath 1.0表达式,用于标识与给定绑定声明关联的schemaLocation中的架构节点。 例如,JAXB绑定声明文件中的第一个schemaLocation / node声明指定了模式名称和根模式节点:
<jxb:bindings schemaLocation="po.xsd" node="/xs:schema">
后续的schemaLocation / node声明,例如上述模式中名为ZipCodeType的simpleType元素,将采用以下形式:
<jxb:bindings node="//xs:simpleType[@name='ZipCodeType']">
有关外部绑定文件的信息的另一个好资源是oreilly。来自oreilly的示例绑定文件是:
引用:
清单11.使用外部绑定文件
<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" jxb:extensionBindingPrefixes="xjc"> <jxb:bindings schemaLocation="po4.xsd" node="/xs:schema"> <jxb:globalBindings> <xjc:superClass name="com.syh.Shape"/> <xjc:serializable uid="12343"/> </jxb:globalBindings> <jxb:bindings node="//xs:element[@name='Widgets']//xs:complexType//xs:choice"> <jxb:property name="Shapes"/> </jxb:bindings> </jxb:bindings> </jxb:bindings>