2016-08-04 59 views
0

kann nicht gefunden werden. Beim unmarshalierenden Ereignis wie "2:31. Cvc-elt.1: Die Deklaration des Elements 'ns: users' kann nicht gefunden werden." trittXML, XSD, cvc-elt.1: Die Deklaration des Elements

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> 

Validation.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> 

Hinweis: Wenn möglich, XML-Datei mit Daten 'Accounts' sollte nicht geändert werden.

Antwort

0

Ihr XML befindet sich im Namespace com.data, aber Ihr Schema deklariert keine Elemente in diesem Namespace.

Fügen Sie targetNamespace="com.data" zu Ihrem xs: schema-Element hinzu.