Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/04/2008, 18h48   #1
Membre à l'essai
 
Inscription : février 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 37
Points : 23
Points : 23
Envoyer un message via AIM à AlambicTalon Envoyer un message via MSN à AlambicTalon Envoyer un message via Yahoo à AlambicTalon
Par défaut Validation XML avec DB2 V9.5

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:

Code :
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;
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.

L'entête de document.xsd est donc comme suit:
Code :
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 code SQL pour la validation est:
Code :
VALUES ( XMLVALIDATE(? according TO xmlschema id projet.Document));
Le ? correspond évidemment à une chaîne passée dans le programme Java d'où j'ai extrait le code SQL.

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.
AlambicTalon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/05/2008, 23h07   #2
Membre à l'essai
 
Inscription : février 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 37
Points : 23
Points : 23
Envoyer un message via AIM à AlambicTalon Envoyer un message via MSN à AlambicTalon Envoyer un message via Yahoo à AlambicTalon
Bon, un élément de réponse et j'espère que quelqu'un peut remplir les blancs.

Si je fais:

Code :
INSERT INTO matable (colonneXML) VALUES ( XMLVALIDATE(? according TO xmlschema id projet.Document));
Et bien, la validation se fait. Pourtant, selon la documentation officielle VALUES est en soit une requête légitime et valable. D'ailleurs, si je ne mets pas le bon ID de schéma j'ai une erreur l'indiquant, si je mets un ID inexistant, j'ai aussi une erreur l'indiquant, mais voilà, il semble que VALUES ne retourne pas d'exception quand XMLVALIDATE en retourne une ou bien XMLVALIDATE n'est pas invoqué.

Ce n'est donc pas un problème de validation XML comme tel, mais un problème de l'utilisation de VALUES comme énoncé SQL. Quelqu'un a déjà utilisé VALUES tout seul, sans INSERT ou autre énoncé? Il y a une explication rationnelle à ce comportement?
AlambicTalon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/05/2008, 20h20   #3
Membre à l'essai
 
Inscription : février 2008
Messages : 37
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 37
Points : 23
Points : 23
Envoyer un message via AIM à AlambicTalon Envoyer un message via MSN à AlambicTalon Envoyer un message via Yahoo à AlambicTalon
En utilisant le CLI, tout fonctionne, donc c'est avec l'utilisation à l'intérieur d'un programme Java que le problème se produit. Pour les autres API, je ne sais pas si le problème existe aussi.
AlambicTalon est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h10.


 
 
 
 
Partenaires

Hébergement Web