从XSD使用JAXB生成元素java类
我有一个xsd文档,我想使用JAXB从中生成java类。 以前,有一个元素是这样的:从XSD使用JAXB生成元素java类,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,我有一个xsd文档,我想使用JAXB从中生成java类。 以前,有一个元素是这样的: <element name="myResponse" type="param:response> <complexType name="response"> <sequence> <element maxOccurs="unbounded" minOccurs="0" name="reference" type="param:myType" /&
<element name="myResponse" type="param:response>
<complexType name="response">
<sequence>
<element maxOccurs="unbounded" minOccurs="0" name="reference" type="param:myType" />
...
</sequence>
</complexType>
及
但两者都不起作用
有人能告诉我,当不是列表时,正确的方法是什么吗?到目前为止,我没有足够的声誉,所以我无法评论问题,因此我将负责猜测您的问题是什么(没有足够的信息说明如何在java代码中获取“response”变量)。我相信这与您的类型接受一系列元素或仅接受一个元素无关
ObjectFactory.class
,以及表示您的类型的其他类。检查该选项以了解对象是如何创建的@xmlementdecl
进行注释,并具有JAXBElement类型List
类型的“reference”字段JAXBContext jc = JAXBContext.newInstance(ObjectFactory.class);
Response response = ((JAXBElement<Response>) jc.createUnmarshaller().unmarshal(new File("YOUR_FILE_PATH"))).getValue();
MyType t = new ObjectFactory().createMyType();
response.setReference(t);
JAXBContext jc=JAXBContext.newInstance(ObjectFactory.class);
Response Response=((JAXBElement)jc.createUnmarshaller().unmarshal(新文件(“您的文件路径”)).getValue();
MyType t=newObjectFactory().createMyType();
响应。设置参考(t);
这基本上是一种正确的方法(包括使用ObjectFactory.class
方法创建新对象)
myType t = new myType();
response.getReference().setValue(t);
myType t = new myType();
response.setReference(t);
JAXBContext jc = JAXBContext.newInstance(ObjectFactory.class);
Response response = ((JAXBElement<Response>) jc.createUnmarshaller().unmarshal(new File("YOUR_FILE_PATH"))).getValue();
MyType t = new ObjectFactory().createMyType();
response.setReference(t);