Bonjour,
Je dois créer une page .php qui va faire une requête pour récupérer des données existant dans deux tables dans la base de données. Et les données que je possède pour l'instant sont un schéma .xsd et un document XML
Voici le schéma .xsd
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema "> <xs:include schemaLocation="./TypeBase.xsd"/> <!-- ### Définition des énumérations spécifiques à la TVA ### --> <!-- Type Groupe Fonctionnel TVA --> <xs:simpleType name="TypeGroupeFonctionnelTva"> <xs:restriction base="xs:string"> <xs:enumeration value="INFENT" /> </xs:restriction> </xs:simpleType> <!-- Type Rédacteur TVA --> <xs:simpleType name="TypeRedacteurTva"> <xs:restriction base="xs:string"> <xs:enumeration value="ENT_EDI_TVA" /> <xs:enumeration value="CEC_EDI_TVA" /> <xs:enumeration value="ATD_EDI_TVA" /> </xs:restriction> </xs:simpleType> <!-- Type Destinataire TVA --> <xs:simpleType name="TypeDestinataireTva"> <xs:restriction base="xs:string"> <xs:enumeration value="DGI_EDI_TVA" /> <!-- DGFip --> <xs:enumeration value="CEC_EDI_TVA" /> <!-- Expert Comptable identifié par SIRET (doit posséder un compte sur le portail) --> <xs:enumeration value="OGA_EDI_TVA" /> <!-- OGA identifié par SIRET (doit posséder un compte sur le portail) --> </xs:restriction> </xs:simpleType> <!-- Type Déclaration TVA --> <xs:simpleType name="TypeDeclarationTva"> <xs:restriction base="xs:string"> <xs:enumeration value="IDT" /> <!-- Déclaration --> <xs:enumeration value="RBT" /> <!-- Remboursement (non compatible avec les destinataires OGA) --> </xs:restriction> </xs:simpleType> <!-- ### Définition des types complexes ### --> <!-- ======================================================= Element racine XmlEdi ======================================================== --> <xs:element name="XmlEdi" type="XmlEdi" /> <xs:complexType name="XmlEdi"> <xs:sequence> <xs:element name="GroupeFonctionnel" type="GroupeFonctionnel" minOccurs="1" maxOccurs="1" /> </xs:sequence> <xs:attribute name="Test" type="DigitBoolean" use="required" /> </xs:complexType> <!-- ======================================================= XmlEdi / GroupeFonctionnel ======================================================== --> <xs:complexType name="GroupeFonctionnel"> <xs:sequence> <xs:element ref="Declaration" minOccurs="1" maxOccurs="100" /> </xs:sequence> <xs:attribute name="Type" type="TypeGroupeFonctionnelTva" use="required" /> </xs:complexType> <!-- ======================================================= XmlEdi / GroupeFonctionnel / Declaration ======================================================== --> <xs:complexType name="Declaration"> <xs:sequence> <xs:element name="Emetteur" type="Emetteur" minOccurs="0" maxOccurs="1" /> <xs:element name="Redacteur" type="Redacteur" minOccurs="1" maxOccurs="1" /> <xs:element name="Redevable" type="Redevable" minOccurs="1" maxOccurs="1" /> <xs:element name="PartenaireEdi" type="PartenaireEdi" minOccurs="0" maxOccurs="1" /> <xs:element name="ListeDestinataires" type="ListeDestinataires" minOccurs="1" maxOccurs="1" /> <xs:element name="ListeFormulaires" type="ListeFormulaires" minOccurs="1" maxOccurs="1" /> </xs:sequence> <xs:attribute name="Type" type="TypeDeclarationTva" use="required" /> <xs:attribute name="Reference" type="ReferenceDeclaration" use="required" /> </xs:complexType> <xs:element name="Declaration" type="Declaration" /> <!-- ======================================================= XmlEdi / GroupeFonctionnel / Declaration / Emetteur ======================================================== --> <xs:complexType name="Emetteur"> <xs:sequence> <xs:element ref="Siret" minOccurs="1" maxOccurs="1" /> <xs:element ref="Designation" minOccurs="1" maxOccurs="1" /> <xs:element ref="DesignationSuite1" minOccurs="0" maxOccurs="1" /> <xs:element ref="Adresse" minOccurs="1" maxOccurs="1" /> <xs:element ref="ReferenceDossier" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> <!-- ======================================================= XmlEdi / GroupeFonctionnel / Declaration / Redacteur ======================================================== --> <xs:complexType name="Redacteur"> <xs:sequence> <xs:element ref="Siret" minOccurs="1" maxOccurs="1" /> <xs:element name="Designation" type="TypeRedacteurTva" minOccurs="1" maxOccurs="1" /> <xs:element ref="DesignationSuite1" minOccurs="0" maxOccurs="1" /> <xs:element ref="DesignationSuite2" minOccurs="0" maxOccurs="1" /> <xs:element ref="Adresse" minOccurs="1" maxOccurs="1" /> <xs:element ref="ReferenceDossier" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> <!-- ======================================================= XmlEdi / GroupeFonctionnel / Declaration / Redevable ======================================================== --> <xs:complexType name="Redevable"> <xs:sequence> <xs:element name="Identifiant" type="Siren" minOccurs="1" maxOccurs="1" /> <xs:element ref="Designation" minOccurs="1" maxOccurs="1" /> <xs:element ref="DesignationSuite1" minOccurs="0" maxOccurs="1" /> <xs:element ref="Adresse" minOccurs="1" maxOccurs="1" /> <xs:element ref="ReferenceDossier" minOccurs="0" maxOccurs="1" /> <xs:element ref="Rof" minOccurs="1" maxOccurs="1" /> </xs:sequence> </xs:complexType> <!-- ======================================================= XmlEdi / GroupeFonctionnel / Declaration / PartenaireEdi ======================================================== --> <xs:complexType name="PartenaireEdi"> <xs:sequence> <xs:element name="Identifiant" type="Agrement" minOccurs="1" maxOccurs="1" /> <xs:element ref="Designation" minOccurs="1" maxOccurs="1" /> <xs:element ref="DesignationSuite1" minOccurs="0" maxOccurs="1" /> <xs:element ref="Adresse" minOccurs="1" maxOccurs="1" /> <xs:element ref="ReferenceDossier" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> <!-- ================================================================== XmlEdi / GroupeFonctionnel / Declaration / ListeDestinataires =================================================================== --> <xs:complexType name="ListeDestinataires"> <xs:choice> <xs:element name="Destinataire" type="Destinataire" minOccurs="1" maxOccurs="3" /> </xs:choice> </xs:complexType> <!-- ======================================================================================== XmlEdi / GroupeFonctionnel / Declaration / ListeDestinataires / Destinataire ========================================================================================= --> <xs:complexType name="Destinataire"> <xs:sequence> <xs:element name="Designation" type="TypeDestinataireTva" minOccurs="1" maxOccurs="1" /> <xs:element ref="Identifiant" minOccurs="0" maxOccurs="1" /> <xs:element ref="DesignationSuite1" minOccurs="0" maxOccurs="1" /> <xs:element ref="DesignationSuite2" minOccurs="0" maxOccurs="1" /> <xs:element ref="Adresse" minOccurs="0" maxOccurs="1" /> <xs:element ref="ReferenceDossier" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:complexType> <!-- ================================================================== XmlEdi / GroupeFonctionnel / Declaration / ListeFormulaires =================================================================== --> <xs:complexType name="ListeFormulaires"> <xs:sequence> <xs:element name="Identif" type="Formulaire" minOccurs="1" maxOccurs="1" /> <xs:element name="Formulaire" type="FormulaireDeclaratif" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> <!-- =========================================================================== XmlEdi / GroupeFonctionnel / Declaration / ListeFormulaires / Identif ============================================================================ --> <xs:complexType name="Formulaire"> <xs:sequence> <xs:element name="Zone" type="Zone" minOccurs="1" maxOccurs="unbounded" /> </xs:sequence> <xs:attribute name="Millesime" type="DigitFix2" use="required" /> </xs:complexType> <!-- =========================================================================== XmlEdi / GroupeFonctionnel / Declaration / ListeFormulaires / Formulaire ============================================================================ --> <xs:complexType name="FormulaireDeclaratif" > <xs:complexContent> <xs:extension base="Formulaire"> <xs:attribute name="Nom" type="NumAndLetters" use="required" /> <xs:attribute name="Repetition" type="Digit4" /> </xs:extension> </xs:complexContent> </xs:complexType> <!-- ==================================================================================== XmlEdi / GroupeFonctionnel / Declaration / ListeFormulaires / Formulaire / Zone ===================================================================================== --> <!-- Définition d'une Zone --> <xs:complexType name="Zone"> <xs:choice> <!-- Zone Simple --> <xs:sequence> <xs:element name="Valeur" type="String512" minOccurs="1" maxOccurs="1" /> </xs:sequence> <!-- Zone Multiple de Coordonnées (NAD) --> <xs:sequence> <xs:element ref="Identifiant" minOccurs="0" maxOccurs="1" /> <xs:element ref="Designation" minOccurs="0" maxOccurs="1" /> <xs:element ref="DesignationSuite1" minOccurs="0" maxOccurs="1" /> <xs:element ref="DesignationSuite2" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseNumero" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseType" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseVoie" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseComplement" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseHameau" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseCodePostal" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseVille" minOccurs="0" maxOccurs="1" /> <xs:element ref="AdresseCodePays" minOccurs="0" maxOccurs="1" /> <xs:element ref="Telephone" minOccurs="0" maxOccurs="1" /> <xs:element ref="Email" minOccurs="0" maxOccurs="1" /> </xs:sequence> <!-- Zone Multiple de Texte Libre (FTX) --> <xs:sequence> <xs:element ref="TexteLibre1" minOccurs="1" maxOccurs="1" /> <xs:element ref="TexteLibre2" minOccurs="0" maxOccurs="1" /> <xs:element ref="TexteLibre3" minOccurs="0" maxOccurs="1" /> <xs:element ref="TexteLibre4" minOccurs="0" maxOccurs="1" /> <xs:element ref="TexteLibre5" minOccurs="0" maxOccurs="1" /> </xs:sequence> <!-- Zone Multiple d'identification Financière (FII) --> <xs:sequence> <xs:element ref="Iban" minOccurs="1" maxOccurs="1" /> <xs:element ref="Bic" minOccurs="1" maxOccurs="1" /> <xs:element ref="TitulaireDesignation" minOccurs="0" maxOccurs="1" /> <xs:element ref="TitulaireDesignationSuite" minOccurs="0" maxOccurs="1" /> </xs:sequence> </xs:choice> <xs:attribute name="id" type="UpperString2" use="required" /> </xs:complexType> </xs:schema>
Et voila le document XML
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?> <XmlEdi Test="1"> <GroupeFonctionnel Type="INFENT"> <Declaration Reference="INFENT000000000341-0-0" Type="IDT"> <Redacteur> <Siret>12345678900015</Siret> <Designation>ENT_EDI_TVA</Designation> <DesignationSuite1>DUPOND Martin</DesignationSuite1> <Adresse> <AdresseNumero>137</AdresseNumero> <AdresseVoie>rue d'Aguesseau</AdresseVoie> <AdresseCodePostal>92100</AdresseCodePostal> <AdresseVille>Boulogne</AdresseVille> <AdresseCodePays>FR</AdresseCodePays> </Adresse> </Redacteur> <Redevable> <Identifiant>079555439</Identifiant> <Designation>REDEVABLE TEST</Designation> <Adresse> <AdresseNumero>44</AdresseNumero> <AdresseType>T</AdresseType> <AdresseVoie>ALPHANUMERIQUE</AdresseVoie> <AdresseCodePostal>44100</AdresseCodePostal> <AdresseVille>NANTES</AdresseVille> <AdresseCodePays>FR</AdresseCodePays> </Adresse> <Rof>TVA1</Rof> </Redevable> <PartenaireEdi> <Identifiant>9210007</Identifiant> <Designation>ASP-ONE.FR</Designation> <Adresse> <AdresseNumero>56</AdresseNumero> <AdresseVoie>RUE DE BILLANCOURT</AdresseVoie> <AdresseCodePostal>92100</AdresseCodePostal> <AdresseVille>BOULOGNE-BILLANCOURT</AdresseVille> </Adresse> <ReferenceDossier>DEC00001</ReferenceDossier> </PartenaireEdi> <ListeDestinataires> <Destinataire> <Designation>DGI_EDI_TVA</Designation> </Destinataire> <Destinataire> <Designation>OGA_EDI_TVA</Designation> <Identifiant>41122204500035</Identifiant> <DesignationSuite1>OGA TEST PASC</DesignationSuite1> <Adresse> <AdresseNumero>66</AdresseNumero> <AdresseType>B</AdresseType> <AdresseVoie>rue de test</AdresseVoie> <AdresseComplement>complément adresse</AdresseComplement> <AdresseCodePostal>42000</AdresseCodePostal> <AdresseVille>Saint-Etienne</AdresseVille> <AdresseCodePays>FR</AdresseCodePays> </Adresse> <ReferenceDossier>54646556</ReferenceDossier> </Destinataire> </ListeDestinataires> <ListeFormulaires> <Identif Millesime="14"> <Zone id="AA"> <Identifiant>079555439</Identifiant> <Designation>REDEVABLE TEST</Designation> <AdresseNumero>44</AdresseNumero> <AdresseType>T</AdresseType> <AdresseVoie>ALPHANUMERIQUE</AdresseVoie> <AdresseCodePostal>44100</AdresseCodePostal> <AdresseVille>NANTES</AdresseVille> <AdresseCodePays>FR</AdresseCodePays> <Telephone>0149098739</Telephone> <Email>***@***</Email> </Zone> <Zone id="KD"> <Valeur>TVA1</Valeur> </Zone> <Zone id="CA"> <Valeur>20140801</Valeur> </Zone> <Zone id="CB"> <Valeur>20140831</Valeur> </Zone> <Zone id="HA"> <Valeur>5000</Valeur> </Zone> <Zone id="GA"> <Iban>FR7611111222223333333333391</Iban> <Bic>CEPAFRPP142</Bic> </Zone> <Zone id="KA"> <Valeur>TVA1-092014-3310CA3</Valeur> </Zone> <Zone id="GB"> <Iban>FR7622222333334444444444442</Iban> <Bic>CEPAFRPX123</Bic> </Zone> <Zone id="HB"> <Valeur>15000</Valeur> </Zone> <Zone id="KB"> <Valeur>TVA1-092014-3310CA3</Valeur> </Zone> </Identif> <Formulaire Repetition="0" Nom="3310CA3" Millesime="14"> <Zone id="GH"> <Valeur>10000</Valeur> </Zone> <Zone id="HA"> <Valeur>0</Valeur> </Zone> <Zone id="HB"> <Valeur>0</Valeur> </Zone> <Zone id="HC"> <Valeur>0</Valeur> </Zone> <Zone id="KA"> <Valeur>10000</Valeur> </Zone> <Zone id="FD"> <Valeur>10000</Valeur> </Zone> <Zone id="GD"> <Valeur>2000</Valeur> </Zone> <Zone id="KB"> <Valeur>10000</Valeur> </Zone> <Zone id="CA"> <Valeur>50000</Valeur> </Zone> <Zone id="KE"> <Valeur>20000</Valeur> </Zone> <Zone id="GG"> <Valeur>0</Valeur> </Zone> <Zone id="FP"> <Valeur>40000</Valeur> </Zone> <Zone id="GP"> <Valeur>8000</Valeur> </Zone> </Formulaire> <Formulaire Repetition="0" Nom="3310TER" Millesime="14"> <Zone id="AB"> <Valeur>50</Valeur> </Zone> <Zone id="BA"> <TexteLibre1>test</TexteLibre1> </Zone> <Zone id="CA"> <Valeur>50</Valeur> </Zone> <Zone id="DA"> <Valeur>10000</Valeur> </Zone> <Zone id="FA"> <Valeur>10000</Valeur> </Zone> <Zone id="DL"> <Valeur>10000</Valeur> </Zone> <Zone id="FL"> <Valeur>10000</Valeur> </Zone> <Zone id="QA"> <Valeur>10000</Valeur> </Zone> <Zone id="QL"> <Valeur>10000</Valeur> </Zone> <Zone id="QM"> <Valeur>10000</Valeur> </Zone> <Zone id="RM"> <Valeur>0</Valeur> </Zone> </Formulaire> <Formulaire Repetition="0" Nom="3310A" Millesime="14"> <Zone id="BA"> <Valeur>10000</Valeur> </Zone> <Zone id="CA"> <Valeur>2000</Valeur> </Zone> <Zone id="BN"> <Valeur>10000</Valeur> </Zone> <Zone id="CN"> <Valeur>2000</Valeur> </Zone> <Zone id="FA"> <Valeur>10000</Valeur> </Zone> <Zone id="HB"> <Valeur>10000</Valeur> </Zone> </Formulaire> </ListeFormulaires> </Declaration> </GroupeFonctionnel> </XmlEdi>
Afficher la suite
27 févr. 2016 à 20:23