如何为xjc编写外部绑定文件?

发布于 2024-08-10 21:23:29 字数 484 浏览 5 评论 0 原文

JAXB xjc 的文档说:

-b 指定一个或多个要处理的外部绑定文件。 (每个绑定文件必须有自己的“-b”开关。)外部绑定文件的语法非常灵活。您可能有一个包含多个架构的自定义的绑定文件,或者您可以将自定义分解为多个绑定文件:

<前><代码> xjc schema1.xsd schema2.xsd schema3.xsd -b 绑定123.xjb xjc schema1.xsd schema2.xsd schema3.xsd -b 绑定1.xjb -b 绑定2.xjb -b 绑定3.xjb

此外,命令行上架构文件和绑定文件的顺序并不重要。

但是我在哪里可以找到这个“外部绑定文件”的文档?

The documentation of JAXB xjc says:

-b
Specify one or more external binding files to process. (Each binding file must have it's own "-b" switch.) The syntax of the external binding files is extremely flexible. You may have a single binding file that contains customizations for multiple schemas or you can break the customizations into multiple bindings files:

   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 

In addition, the ordering of the schema files and binding files on the command line does not matter.

But where do I find a documentation of this "external binding file"?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

薯片软お妹 2024-08-17 21:23:29

外部绑定文件记录在 自定义oracle.com 上的 JAXB Bindings 页面

引用:

外部绑定自定义文件

通过包含绑定声明的外部文件对 JAXB 绑定进行的自定义采用如下所示的一般形式。

;
   *
      <约束性声明>
   
 

schemaLocation 是对远程架构的 URI 引用
node 是一个 XPath 1.0 表达式,用于标识 schemaLocation 中与给定绑定声明关联的模式节点。
例如,JAXB 绑定声明文件中的第一个 schemaLocation/节点声明指定模式名称和根模式节点:

 

后续的 schemaLocation/node 声明(例如上述架构中名为 ZipCodeType 的 simpleType 元素)将采用以下形式:

; 

请参阅还; JAXB 编译器选项


有关外部绑定文件信息的另一个很好的资源是 奥雷利。来自 oreilly 是:

引用:

清单 11. 使用外部绑定文件


    
        
            
            
        
        ;
            
        
    

The external binding file is documented on the Customizing JAXB Bindings page on oracle.com

Quote:

External Binding Customization Files

Customizations to JAXB bindings made by means of an external file containing binding declarations take the general form shown below.

<jxb:bindings schemaLocation = "xs:anyURI">
   <jxb:bindings node = "xs:string">*
      <binding declaration>
   <jxb:bindings>
</jxb:bindings> 

schemaLocation is a URI reference to the remote schema
node is an XPath 1.0 expression that identifies the schema node within schemaLocation to which the given binding declaration is associated.
For example, the first schemaLocation/node declaration in a JAXB binding declarations file specifies the schema name and the root schema node:

<jxb:bindings schemaLocation="po.xsd" node="/xs:schema"> 

A subsequent schemaLocation/node declaration, say for a simpleType element named ZipCodeType in the above schema, would take the form:

<jxb:bindings node="//xs:simpleType[@name='ZipCodeType']"> 

See also; the JAXB Compiler Options


Another good resource for information on the external binding file is oreilly. An example binding file from oreilly is:

Quote:

Listing 11. Using An External Binding File

<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>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文