Bonjour,

est-ce que quelqu'un a déjà eu à utiliser Xerces sur des fichiers avec des nameSpaces ??

En fait j'essaye de valider des fichiers XML avec des schémas XSD qui sont stockés sur des fichiers en local.

Normalement, pour spécifier le fichier XSD je doit écraser la propriété du SAXParser.

j'ai essayé les deux cas:

Si je concidère qu'il n'y a aps de nameSpaces
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
InputSource xml = new InputSource(new FileInputStream("C:/test.xml"));
			URL xsd = new File("C:/test.xsd").toURL();
 
			SAXParser parser = new SAXParser();
 
			parser.setFeature("http://xml.org/sax/features/validation", true);
 
			parser.setFeature("http://apache.org/xml/features/validation/schema", true);
 
			parser.setProperty("http://apache.org/xml/properties/schema/external-noNamespaceSchemaLocation", xsd.toString());
erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
cvc-elt.1.a: Cannot find the declaration of element 'Document'
 
TargetNamespace.2: Expecting no namespace, but the schema document has a target namespace of 'urn:iso:std:iso:20022:tech:xsd:pain.001.001.02'

Si je considère qu'il ya les nameSpaces:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
InputSource xml = new InputSource(new FileInputStream("C:/test.xml"));
			URL xsd = new File("C:/test.xsd").toURL();
 
			SAXParser parser = new SAXParser();
 
			parser.setFeature("http://xml.org/sax/features/validation", true);
 
			parser.setFeature("http://apache.org/xml/features/validation/schema", true);
 
			parser.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation", xsd.toString());
erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
http://www.w3.org/TR/xml-schema-1#SchemaLocation?file:/C:/test.xsd
 
cvc-elt.1.a: Cannot find the declaration of element 'Document'

voici un aperçu des fichiers:
XSD
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-8"?>
<!--Generated by SWIFTStandards Workstation (build:R5.1.0.4) on 2006 Sep 08 11:58:39-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.02" elementFormDefault="qualified" targetNamespace="urn:iso:std:iso:20022:tech:xsd:pain.001.001.02">
<xs:element name="Document" type="Document"/>
<xs:complexType name="AccountIdentification3Choice">
<xs:sequence>
<xs:choice>
<xs:element name="IBAN" type="IBANIdentifier"/>
<xs:element name="BBAN" type="BBANIdentifier"/>
...

XML
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
<?xml version = "1.0" encoding = "UTF-8"?>
<Document xmlns = "urn:iso:std:iso:20022:tech:xsd:pain.001.001.02" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance">
	<pain.001.001.02>
		<GrpHdr>
			<MsgId>ABC/060928/CCT001</MsgId>
			<CreDtTm>2006-09-28T14:07:00</CreDtTm>
			<BtchBookg>false</BtchBookg>
			<NbOfTxs>3</NbOfTxs>
			<CtrlSum>11500000</CtrlSum>
...
Merci pour l'aide, ça commence à me gonfler ce Xerces :p