我已经从XSD生成了Java类,并且我希望使用前缀命名空间从JAXB类编组
这是我的
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/event"
xmlns:tns="http://www.example.org/event"
elementFormDefault="qualified">
<element name="Events" type="tns:EventsType"></element>
<complexType name="EventsType">
<sequence>
<element name="Event" type="tns:inputFlowEventType" maxOccurs="unbounded" minOccurs="1"></element>
</sequence></complexType>
<complexType name="inputFlowEventType">
<sequence>
<element name="DISTRIBUTOR_ID" minOccurs="1" maxOccurs="1">
<simpleType><restriction base="string"><maxLength value="17"></maxLength></restriction></simpleType>
</element>
</sequence>
</complexType>
</schema>
我有这个
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Events xmlns="http://www.example.org/event"><Event><DISTRIBUTOR_ID>6</DISTRIBUTOR_ID></Event></Events>
而不是
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <tns:Events xmlns="http://www.example.org/event"> <tns:Event><tns:DISTRIBUTOR_ID>6</tns:DISTRIBUTOR_ID></tns:Event></tns:Events>
有人知道出了什么问题吗?
感谢
答案 0 :(得分:0)
这两个文件在名称空间限定方面是等效的。第一个指定默认命名空间,第二个声明带有前缀的名称。如果您想控制使用的前缀,答案将取决于您正在使用的JAXB实现。 MOXy将使用@XmlSchema注释中声明的前缀。 JAXB RI具有NamespacePrefixMapper扩展(MOXy也支持):