2010-06-11 6 views
-1

Je veux savoir comment valider XML avec XSD. XML n'est pas un type d'élément mais un type complexe. Étant donné que la méthode de validation de la classe de validateur ne compare que le type d'élément.Valider XSD avec XML

Donc, fondamentalement, je veux valider le type complexe de XSD avec un XML.

par exemple.

de base XSD ci-dessous

xs:element name="Customer"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="Dob" type="xs:date" /> 
     <xs:element name="Address"> 
     <xs:complexType> 
      <xs:sequence> 
      <xs:element name="Line1" type="xs:string" /> 
      <xs:element name="Line2" type="xs:string" /> 
      </xs:sequence> 
     </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
    </xs:complexType> 
</xs:element> 

Nous pouvons supposer que nous avons plusieurs type complexe dans l'élément client.

MY XML est

<Address> 
    <Line1>34 thingy street, someplace</Line1> 
    <Line2>sometown, w1w8uu </Line2> 
</Address> 

Comment puis-je valider mon XML avec XSD. publier Veuillez vos suggestions en java

+1

« Post Veuillez vos suggestions en java » est une belle façon de dire « me donner le codez », mais en substance, il est toujours le même. Veuillez poster votre propre code la prochaine fois avec une explication où vous êtes coincé, afin que les gens voient que vous n'êtes pas seulement paresseux. – Tomalak

+0

Salut Tomalak, Ce n'est pas d'être paresseux. Certaines fonctionnalités sont disponibles dans une langue et pas dans d'autres. On peut donner une solution dans un autre langage qui pourrait ne pas être possible en Java. – munish

+0

Qu'avez-vous essayé, quelles erreurs obtenez-vous? 'Validator.validate()' valide le xml par rapport aux schémas, alors de quoi d'autre avez-vous besoin? – Alberto

Répondre

1

Quelque chose comme

import javax.xml.validation.Schema; 
import javax.xml.validation.SchemaFactory; 
import javax.xml.validation.Validator; 

// ..... 


    try { 
     File xmlFile // read XML file 

     File xsdFile // read XSD file 

     Schema schema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(xsdFile); 
     Validator validator = schema.newValidator(); 
     validator.validate(new StreamSource(xmlFile)); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (SAXException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    }