我有一个Java接口,例如如下 公共接口A
public static final String SD_A= "SD-A";
我的问题是如何在XSD文件中编写上述属性?因为我有使用XML BOM获取错误的blaze顾问项目 - 在当前范围内未定义A.所以当我添加该接口时如下 我得到的错误如下: - 不是由'A'
定义的常量或静态属性有任何解决问题的建议吗?
答案 0 :(得分:0)
如果我说得对,你想为你的模式派生类添加一个静态字段。
您可以做的最简单的事情是使用代码注入器插件:
Inserting code with XJC+xsd+jxb using the options " -Xinject-code -extension "
类似的东西:
<jxb:bindings schemaLocation="schema.xsd">
<jxb:bindings node="/xs:schema/xs:complexType[@name='SomeExtension']">
<ci:code>
public static final String EXTENSION_CODE = "NAMEOFTHEEXTENSION";
</ci:code>
</jxb:bindings>
</jxb:bindings>
答案 1 :(得分:0)
我通过eclipse创建了XSD文件,即File-&gt; New-&gt; Other-&gt; JAXB-&gt;来自JAXB类的Scema 来自Java应用程序的Java类。但现在我需要制作一个Java接口的XSD。所以当我按照上面的过程创建一个XSD时,它显示错误“ com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException:IllegalAnnotationExceptions的1个计数 com.test.IClassproduct是一个接口,JAXB无法处理接口。
所以我在另一个XSD文件中添加了该接口,格式如下
<xs:complexType name="IClassProducts"> <xs:sequence> <xs:element name="AHS" type="static" fixed="AHS" /> </xs:sequence> </xs:complexType>
但现在显示错误
'AHS'不是'IClassProducts'
定义的常量或静态属性因此建议您使用以下格式。
<jxb:bindings schemaLocation="schema.xsd">
<jxb:bindings node="/xs:schema/xs:complexType[@name='SomeExtension']">
<ci:code>
public static final String EXTENSION_CODE = "NAMEOFTHEEXTENSION";
</ci:code>
</jxb:bindings>
</jxb:bindings>
我的问题是我将添加此内容以及如何使用。我的目的无论如何我在XSD文件中使用了上面的静态属性'AHS'所以当我加载那个XSD文件时它可以识别该属性并可以解决以下错误 'AHS'不是'IClassProducts'
定义的常量或静态属性