Creer une page php a partir d'un schema .xsd et d'un fichier xml

Fermé
salous Messages postés 2 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 février 2016 - 26 févr. 2016 à 22:55
salous Messages postés 2 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 février 2016 - 27 févr. 2016 à 20:23
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>
A voir également:

1 réponse

jordane45 Messages postés 38270 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 novembre 2024 4 695
27 févr. 2016 à 13:36
Bonjour,

Déjà.. je t'invite à lire ceci :
https://www.commentcamarche.net/infos/25899-demander-de-l-aide-pour-vos-exercices-sur-ccm/

Ensuite... expliques nous exactement sur quoi tu bloques... et n'hésites pas à nous montrer ce que tu as commencé à coder !
0
salous Messages postés 2 Date d'inscription vendredi 26 février 2016 Statut Membre Dernière intervention 27 février 2016
27 févr. 2016 à 20:23
Je suis bloquée je n'arrive pas à produire les requêtes en se basant juste sur le schéma .xsd et le document XML. Je veux juste savoir comment lire et comprendre ces fichiers pour pouvoir commencer
0