如果标记中有“ns0”,则无法使用XML

时间:2016-06-22 05:40:30

标签: xml

我在使用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:,自昨天以来我一直在寻找答案。我已经阅读了一些网站,他们谈到了命名空间,因为我是编程的新手,我几乎不了解解释,也不了解他们的问题与我的关系。

有人可以帮帮我吗?非常感谢你。

2 个答案:

答案 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")

这将分别适用于MyExportMyClient

更新:您还需要:

@XmlRootElement(name = "mycs")
@XmlAccessorType(XmlAccessType.FIELD)
public class MYCS{

    @XmlElement(namespace="export.com")
    private List <MyClient> myClient;
    // insert getter and setter
}