我在使用XML文件时遇到问题。这是xml文件
<?xml version="1.0"?>
<ns0:myExport xmlns:ns0="com.export">
<country>PH</country>
<mycs>
<ns0:myClient>
// insert other data
</ns0:myClient>
</mycs>
<ns0: myExport>
如果我运行main,它必须使用xml并且应该将xml文件中的数据插入到数据库中。但它说的是
myExport: com.domain.MyExport@7ea861b null
当我尝试删除ns0:
及其结尾标记中的<ns0:myClient>
时,它的工作原理应该如此。这些是我使用过的域名
@XmlRootElement(name = "myExport")
@XmlType(propOrder = {"country", "mycs"})
@XmlAccessorType(XmlAccessType.FIELD)
public class MyExport {
@XmlElement
private String country;
@XmlElement
private MYCS mycs;
// insert getter and setter
}
和
@XmlRootElement(name = "mycs")
@XmlAccessorType(XmlAccessType.FIELD)
public class MYCS{
@XmlElement
private List <MyClient> myClient;
// insert getter and setter
}
和
@XmlRootElement(name = "myClient")
@XmlAccessorType(XmlAccessType.FIELD)
public class MyClient {
private String clientId;
// insert getter and setter
}
我不允许删除ns0:
,自昨天以来我一直在寻找答案。我已经阅读了一些网站,他们谈到了命名空间,因为我是编程的新手,我几乎不了解解释,也不了解他们的问题与我的关系。
有人可以帮帮我吗?非常感谢你。
答案 0 :(得分:2)
而不是
@XmlRootElement(name = "myExport")
尝试
@XmlRootElement(name = "ns0:myExport")
我不知道你正在使用什么框架,所以这只是猜测。是的&#34; ns0&#34;是命名空间。这是在这一行配置的:
<ns0:myExport xmlns:ns0="com.export">
您将名称空间ns0
设置为com.export
。
如果上面的提示不起作用,您应该找出您正在使用的框架以及如何在该框架内配置名称空间。如果您不知道名称空间是什么,我相信如果您查找它们,可以在线解释:)
答案 1 :(得分:1)
只需将名称空间添加到需要它们的元素注释中:
@XmlRootElement(name="myExport" namespace="com.export")
这将分别适用于MyExport
和MyClient
。
更新:您还需要:
@XmlRootElement(name = "mycs")
@XmlAccessorType(XmlAccessType.FIELD)
public class MYCS{
@XmlElement(namespace="export.com")
private List <MyClient> myClient;
// insert getter and setter
}