簡體   English   中英

XML,XSD,cvc-elt.1:找不到元素的聲明

[英]XML, XSD, cvc-elt.1: Cannot find the declaration of element

在諸如“ 2:31。cvc-elt.1:找不到元素'ns:users'的聲明”之類的解組事件中。 發生

Users.java

    @XmlRootElement(namespace = "com.data")
public class Users {
    @XmlElement(name = "user")
    private List<User> userList = new ArrayList<User>();
.
.

User.java

@XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder = {"first",  "last", "passes"})
public class User {
    private String first;
    private String last;
    @XmlElement(name = "pass")
    private String[] passes;
.

Accounts.xml

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ns:users xmlns:ns="com.data">
    <user>
        <first>John</first>
        <last>Dou</last>
        <pass>10223544</pass>
    </user>
     <user>
        <first>Leroy</first>
        <last>Jenkins</last>
        <pass>dQ112aDf</pass>
    </user>
</ns:users>

驗證文件

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="users">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" ref="user"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

    <xs:element name="user">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="first"/>
                <xs:element name="last"/>
                <xs:element name="pass" maxOccurs="2"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>

</xs:schema>

注意:如果可能,帶有數據“帳戶”的xml文件不應更改。

您的XML在名稱空間com.data ,但是您的架構未在該名稱空間中聲明元素。

targetNamespace="com.data"添加到您的xs:schema元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM