Han*_*ann 5 java xml jaxb blind unmarshalling
我的JAXB有一个问题
<element name="create">
<complexType>
<sequence>
<element name="name" type="string"></element>
</sequence>
</complexType>
</element>
Run Code Online (Sandbox Code Playgroud)
我的xml:
<Create>
<name> coco </name>
</Create>
Run Code Online (Sandbox Code Playgroud)
我的代码java:
JAXBContext context = JAXBContext.newInstance("MyPackage");
Unmarshaller decodeur = context.createUnmarshaller();
System.out.println("text : " + message);
msgObject = decodeur.unmarshal(sr);
if (msgObject instanceof Create)
{
System.out.println(" action");
}
Run Code Online (Sandbox Code Playgroud)
我有这个:
意外元素(uri:"",local:"Create").预期的元素是<{ http://www.example.org/XSD_Maths } create>
我的代码停止了这个:
msgObject = decodeur.unmarshal(sr);
Run Code Online (Sandbox Code Playgroud)
我的xml好吗?你能帮帮我吗,因为我不知道是什么问题
bdo*_*han 13
您的XML Schema可能有schema如下标记.
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/XSD_Maths"
xmlns:tns="http://www.example.org/XSD_Maths"
elementFormDefault="qualified">
Run Code Online (Sandbox Code Playgroud)
因为它指定targetNamespace的http://www.example.org/XSD_Maths.您的XML需要如下所示:
<create xmlns="http://www.example.org/XSD_Maths">
<name> coco </name>
</create>
Run Code Online (Sandbox Code Playgroud)
如果您从DOM解组Document或Element确保您使用的DOM解析器是名称空间感知.这是通过在上面设置以下标志来完成的DocumentBuilderFactory.
documentBuilderFactory.setNamespaceAware(true);
Run Code Online (Sandbox Code Playgroud)
下面是我博客上文章的链接,我将更深入地了解JAXB和命名空间.
| 归档时间: |
|
| 查看次数: |
25838 次 |
| 最近记录: |