Quelqu'un a testé avec succès la validation XML en utilisant DB2 V9.5 et plusieurs schémas XML?
J'ai un schéma XML composé de deux fichiers .xsd que j'importe comme objets XSR dans la BD DB2 de la façon suivante:
Je tente de valider un XML de type document, tel que défini dans document.xsd, où document.xsd utilise les types définis dans basictypes.xsd.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 REGISTER XMLSCHEMA 'http://PROJET/basictypes' FROM 'file:///xmlschemas/basictypes.xsd' AS projet.Document; ADD XMLSCHEMA DOCUMENT TO projet.Document ADD 'http://PROJET/document' FROM 'file:///xmlschemas/document.xsd'; COMPLETE XMLSCHEMA projet.Document;
L'entête de document.xsd est donc comme suit:
Le code SQL pour la validation est:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <?xml version="1.0" encoding="iso-8859-1" standalone="yes" ?> <xsd:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:include schemaLocation="http://PROJET/basictypes" /> <xsd:simpleType name="serviceType"> ... </xsd:schema>
Le ? correspond évidemment à une chaîne passée dans le programme Java d'où j'ai extrait le code SQL.
Code : Sélectionner tout - Visualiser dans une fenêtre à part VALUES ( XMLVALIDATE(? according to xmlschema id projet.Document));
Je soumet un document invalide (que je vérifie avec SAX et DOM et tous les deux me disent bien que le document n'est pas valide) et DB2 V9.5 me dit que ce document est valide.
Quelqu'un a une idée du problème? J'ai même tenté de fusionner dans un seul fichier le schéma, et j'ai le même problème. C'est tout comme si DB2 ne validait que la conformité XML du document sans égard au schéma.
Partager