【发布时间】:2011-05-28 14:03:07
【问题描述】:
这是我的代码:
xsd 文件:
<complexType name="Player">
<sequence>
<element name="Login" type="string"></element>
<element name="Passwd" type="string"></element>
</sequence>
</complexType>
<element name="Player" type="tns:Player"></element>
构建.xml:
<exec executable="${javahome}/bin/xjc" >
<arg value="-extension" />
<arg value="-b" />
<arg value="binding.xml" />
<arg value="-d" />
<arg value="${sources}" />
<arg value="-p" />
<arg value="metier" />
<arg value="Player.xsd" />
</exec>
</target>
binding.xml:
<jxb:bindings
xmlns:jxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
jxb:extensionBindingPrefixes="xjc" elementFormDefault="qualified" attributeFormDefault="unqualified"
version="2.1">
<jxb:globalBindings>
<xjc:simple />
<xjc:serializable/>
</jxb:globalBindings>
最后:
JAXBContext context = JAXBContext.newInstance(Player.class,ObjectFactory.class);
Unmarshaller decodeur = context.createUnmarshaller();
为了获得 @XMLRootElement,我添加了“xjc:simple”,但引发了异常:javax.xml.bind.UnmarshalException: unexpected element (uri: "http://www.example.org/Player"
它不能正常工作,因为我得到了这个:@XmlRootElement(name = "Player", namespace = "http://www.example.org/Player"强>)
而不仅仅是:@XmlRootElement(name = "Player")
如何删除这个“命名空间”?
谢谢
【问题讨论】:
-
生成的 JAXB 代码根据您的 XML 模式匹配命名空间限定规则。您确定要从生成的对象模型中删除它吗?