【发布时间】:2011-07-17 18:23:37
【问题描述】:
我有以下 xsd :
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employee" type="employeeType"/>
<xs:complexType name="employeeType">
<xs:sequence>
<xs:element type="xs:string" name="name"/>
<xs:element type="xs:int" name="age"/>
<xs:element type="xs:string" name="address"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
如果我为 Name 设置值 only 即
EmployeeDocument request=EmployeeDocument.Factory.newInstance();
EmployeeType emp=EmployeeType.Factory.newInstance();
emp.setName("Name");
request.setEmployee(emp);
然后 XMLBeans 生成以下 xml:
<employee>
<name>Name</name>
</employee>
但我需要生成以下类型的 xml,这意味着为所有未在程序中设置值的元素关闭标签 </>:
<employee>
<name>Name</name>
<age/>
<address/>
</employee>
好吧,如果我设置一个空字符串,即emp.setAddress("");,XMLBeans 会生成<address/>
有没有什么方法可以使用 XMLBeans 来满足这样的要求,而不需要设置空字符串。
此外,我们无法为 int 类型的元素年龄设置空字符串。
任何帮助将不胜感激。
【问题讨论】:
标签: xsd marshalling unmarshalling xmlbeans