从 xsd 创建一个静态变量
Create a static variable from an xsd
在我正在进行的项目中,我们从多个 xsd 生成 classes。我的一些 classes 需要 public static final String EXTENSION_CODE = "NAMEOFTHEEXTENSION";
。我的 class 的 xsd 看起来像:
<xsd:complexType name="SomeExtension">
<xsd:sequence>
<xsd:element name="ID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="element1" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="element2" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="element3" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="element4" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="otherID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="element5" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
这将生成一个 class,看起来像:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SomeExtension", propOrder = {
"ID",
"element1",
"element2",
"element3",
"element4",
"otherID",
"element5"
})
public class SomeExtension
implements Serializable, Cloneable, CopyTo
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
protected String iD;
protected Element1 element1;
protected Element2 element2;
protected Element3 element3;
protected Element4 element4;
@XmlElement(required = true)
protected String otherID;
protected String element5;
我需要的是:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SomeExtension", propOrder = {
"ID",
"element1",
"element2",
"element3",
"element4",
"otherID",
"element5"
})
public class SomeExtension
implements Serializable, Cloneable, CopyTo
{
public static final String EXTENSION_CODE = "NAMEOFTHEEXTENSION";
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
protected String iD;
protected Element1 element1;
protected Element2 element2;
protected Element3 element3;
protected Element4 element4;
@XmlElement(required = true)
protected String otherID;
protected String element5;
我在 Google 上搜索了以下关键字:java 从 xsd 生成静态变量,但没有找到有用的东西。有没有办法我可以做到这一点,或者我首先需要一个 public static String
怪异的东西?
如果我没听错,您想将静态字段添加到您的模式派生 类。
您可以做的最简单的事情就是使用代码注入器插件:
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>
在我正在进行的项目中,我们从多个 xsd 生成 classes。我的一些 classes 需要 public static final String EXTENSION_CODE = "NAMEOFTHEEXTENSION";
。我的 class 的 xsd 看起来像:
<xsd:complexType name="SomeExtension">
<xsd:sequence>
<xsd:element name="ID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="element1" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="element2" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="element3" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="element4" type="Class" minOccurs="0" maxOccurs="1" />
<xsd:element name="otherID" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="element5" type="xsd:string" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
这将生成一个 class,看起来像:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SomeExtension", propOrder = {
"ID",
"element1",
"element2",
"element3",
"element4",
"otherID",
"element5"
})
public class SomeExtension
implements Serializable, Cloneable, CopyTo
{
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
protected String iD;
protected Element1 element1;
protected Element2 element2;
protected Element3 element3;
protected Element4 element4;
@XmlElement(required = true)
protected String otherID;
protected String element5;
我需要的是:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "SomeExtension", propOrder = {
"ID",
"element1",
"element2",
"element3",
"element4",
"otherID",
"element5"
})
public class SomeExtension
implements Serializable, Cloneable, CopyTo
{
public static final String EXTENSION_CODE = "NAMEOFTHEEXTENSION";
private final static long serialVersionUID = 1L;
@XmlElement(required = true)
protected String iD;
protected Element1 element1;
protected Element2 element2;
protected Element3 element3;
protected Element4 element4;
@XmlElement(required = true)
protected String otherID;
protected String element5;
我在 Google 上搜索了以下关键字:java 从 xsd 生成静态变量,但没有找到有用的东西。有没有办法我可以做到这一点,或者我首先需要一个 public static String
怪异的东西?
如果我没听错,您想将静态字段添加到您的模式派生 类。
您可以做的最简单的事情就是使用代码注入器插件:
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>