J'essaye en ce moment d'utiliser SQLXML 3.0 sous Visual Studio 2003 pour obtenir une représentation XML de tables relationnelles dans la base de données SQLServer.
J'essaye donc de générer une XSD qui devrait me permettre d'obtenir le fichier au format XML correspondant.
Exemple de tables :
Produits <---- Contact_Pro
Dans ce cas là je n'ai pas de problème pour créer la liaison entre les tables père/fils et j'obtiens toutes les informations souhaitées de la table Contact_Pro.
Code :
<?xml version="1.0" encoding="ISO-8859-15"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="ContactProduit" parent="Produits" parent-key="PRODUIT" child="Contact_Pro" child-key="PRODUIT" />
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="Prod" sql:relation="Produits">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="ContactPro" sql:relation="Contact_Pro" sql:relationship="ContactProduit">
<xsd:complexType>
<xsd:attribute name="IDCONTACT" type="xsd:int" />
</xsd:complexType>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="PRODUIT" type="xsd:int"/>
<xsd:attribute name="REFERENCE" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
Par contre dans le cas suivant j'ai un problème :
Produits <---- Contact_Pro ----> Contacts ----> Adresse
Si je veux récupérer les adresses qui correspondent aux contacts pour un produit donné je n'y arrive pas.
Il me dit que la liaison avec la table Contacts n'est pas correct. En fait la table Contact_Pro à 2 pères car je voudais pouvoir relier à la fois Produits et Contacts à Contact_Pro pour obtenir les adresses souhaitées.
Or les clé entre Produits et Contact_Pro d'une part et Contact_Pro et Contacts d'autre part ne sont pas les mêmes.
Du coup lorsqu'il fait la liaison au départ entre Produits et Contact_Pro tout se passe bien, mais ensuite il ne s'y retrouve plus quand je fais la liaison entre Contact_Pro et Contacts.
Le XML que je souhaite obtenir est du type :
<Prod produit="" reference="">
<AdresseProd numero="" libelle_de_commune=""/>
<Cont idcontact="" civilite=""/>
<AdresseCont numero="" libelle_de_commune=""/>
....
</Prod>
Pouvez vous m'aider s'il vous plaît ?
Merci d'avance.
--
Devenez redacteur <XML>fr et contribuez au developpement du
xml francophone (http://xmlfr.org/infos/redacteurs/) !
Liste de diffusion "xml-tech@xmlfr.org" (http://xmlfr.org).
Cette liste est a votre disposition pour discuter en francais de
tout sujet technique lie a XML.
Pour resilier votre abonnement, envoyez un message contenant
la commande "unsubscribe" a xml-tech-request@xmlfr.org
(mailto:xml-tech-request@xmlfr.org?Subject=unsubscribe)
Received on Tue Sep 13 11:30:10 2005