繁体   English   中英

如何从XML创建XSD和Java类

[英]How to created xsd and java class from xml

我想像这样创建xml(不需要元素Element(minOccurs = 0))

<Root>
    <ns:Element date="1980-02-06" state="S">Value1</ns:Element>
    <ns:Element date="1980-02-06" state="S">Value2</ns:Element>
    <ns:Element date="1980-02-06" state="N" xsi:nil="true" />
</Root>

所以在XSD中,我创建了元素:

        <xs:element name="Element" type="ElementType" minOccurs="0" maxOccurs="unbounded" nillable="true"/>

但是问题是我正在使用的插件(cxf-codegen-plugin)创建了包含以下内容的类:

@XmlElement(name = "Element")
protected List<ElementType> element;

并不是

protected List<JAXBElement<ElementType>> element;

这是我期望的,因为现在我没有选择设置nillable的选项。 当我从xsd中删除nillable =“ true”时,没有任何变化,并且生成了相同的Java代码。 所以我该怎么做 ?

好的,我大概找到了解决方法。 当我添加到bindings.xml时,这是:

<jaxb:bindings node="//xs:element[@name='Element']">
    <jaxb:class name="MyCustomElementType"/>    
</jaxb:bindings>

然后创建属于Element的新内部静态类:

    public static class MyCustomElementType
        extends JAXBElement<ElementType>
    { ...
}

这就是我想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM