【问题标题】:XML, XSD, cvc-elt.1: Cannot find the declaration of elementXML、XSD、cvc-elt.1:找不到元素的声明
【发布时间】:2016-08-04 12:44:50
【问题描述】:

关于解组事件,例如“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>();
.
.

用户.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>

验证.xsd

<?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 文件。

【问题讨论】:

    标签: java xml xsd xsd-validation


    【解决方案1】:

    您的 XML 位于命名空间 com.data 中,但您的架构未在该命名空间中声明元素。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-05
      • 2020-05-08
      • 2015-11-25
      • 2015-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多