Validation XML en Java - Problème de namespace

Validation XML en Java - Problème de namespace - Java - Programmation

Marsh Posté le 09-02-2011 à 17:01:35    

Bonjour,
 
Je suis entrein de travailler sur une validation XML en java.
Cette dernière marche parfaitement sur des fichiers n'ayant pas de namespace..
 
Par contre sur des fichiers avec namespace j'ai l'erreur suivante:
org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'TEST:maBalise'.
 
 
Mon fichier XML:
 

Code :
  1. <?xml version="1.0"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:TEST="http://...../..../..../TEST/" targetNamespace="http://......../......./...../TEST/" elementFormDefault="qualified">
  3. <xsd:element name="maBalise" type="TEST:maBalise"/>
  4. <xsd:complexType name="maBalise" mixed="false">
  5.  <xsd:sequence>
  6.   <xsd:element name="Entete" type="TEST:Entete"/>
  7.   <xsd:element name="Corps" type="TEST:Corps" maxOccurs="unbounded"/>
  8.   ...ETC...


 
 
Ma XSD:
 
 

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <TEST:maBalise xmlns:TEST="http://........../........./.........../TEST/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://......./....../......./TEST/ nom.xsd">
  3.   <TEST:Entete>
  4.     <TEST:maBalise2>monTexte2</TEST:maBalise2>
  5.     <TEST:maBalise3>monTexte2</TEST:maBalise3>
  6. ...ETC...


 
 
Voici le code:
 
 

Code :
  1. String xsd = "D:/LOCAL/maXSD.xsd";
  2. String xml = "D:/LOCAL/monFichier.xml";
  3. boolean withNameSpace = true;
  4. InputSource in = new InputSource(xml);
  5. URL xsdURL = new File(xsd).toURL();
  6. SAXParser parser = new SAXParser();
  7. parser.setFeature("http://xml.org/sax/features/validation", true);
  8. parser.setFeature("http://apache.org/xml/features/validation/schema", true);
  9. if (withNameSpace){
  10. System.out.println("AVEC NAMESPACE" );
  11. parser.setFeature("http://xml.org/sax/features/namespaces", true);
  12. parser.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
  13. parser.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation",xsdURL.toString());
  14. }
  15. else {
  16. System.out.println("SANS NAMESPACE" );
  17. parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation",xsdURL.toString());
  18. }
  19. XmlCCHandler parseXmlCC = new XmlCCHandler();
  20. parser.setErrorHandler(parseXmlCC);
  21. parser.setContentHandler(parseXmlCC);
  22. parser.parse(in);
  23. System.out.println("isValid = " + parseXmlCC.isValidXSD());
  24. }


 
 
Si vous pouviez m'aider à résoudre se problème car j'ai essayé de nombreuses solution mais rien n'a marché...
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 09-02-2011 à 17:01:35   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed