Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Créer un schéma xsd


Sujet :

XML/XSL et SOAP

  1. #1
    Membre du Club
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 83
    Points : 48
    Points
    48
    Par défaut Créer un schéma xsd
    Bonjour à tous,

    Je débute en XML, j'aurais donc besoin de votre aide.

    Je dois construire un schéma .xsd afin de l'importer dans Excel pour me permettre de faire le mappage nécessaire pour ensuite exporter les données au format XML.

    Cependant, j'ai un petit souci dans la construction de mon schéma.

    L'exemple que je donne n'est pas réel c'est juste pour vous exposer mon problème.

    J'aurai un fichier excel à 4 colonnes :
    - ID Entreprise
    - Nom Contact
    - Prénom Contact
    - Ville

    J'aurai donc plusieurs fois le même ID dans la colonne ID Entreprise pour répertorier tous les salariés de chaque entreprise.

    Voici mon schéma:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <?xml version="1.0" encoding="UTF-8"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    elementFormDefault="qualified" attributeFormDefault="unqualified">
    	<xs:element name="contact">
    		<xs:annotation>
    			<xs:documentation>Test</xs:documentation>
    		</xs:annotation>
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element name="Entreprise" maxOccurs="unbounded">
    					<xs:complexType>
    						<xs:sequence>
    							<xs:element name="Entreprise_ID" type="xs:integer" maxOccurs="unbounded"/>
    								<xs:element name="Entrees" maxOccurs="unbounded">
    									<xs:complexType>
    										<xs:sequence>
    											<xs:element name="Nom" type="xs:string"/>
    											<xs:element name="Prenom" type="xs:string"/>
    											<xs:element name="Ville" type="xs:string"/>
    										</xs:sequence>
    									</xs:complexType>
    								</xs:element>
    						</xs:sequence>
    					</xs:complexType>
    				</xs:element>	
    			</xs:sequence>
    		</xs:complexType>
    	</xs:element>
    </xs:schema>
    J'importe donc ce schéma dans un classeur excel puis j'ajoute des données pour voir si cela fonctionne.

    Lorsque je veux sauvegarder mon fichier en .xml j'ai un message d'erreur me disant que ce n'est pas possible:
    "Impossible d'enregistrer ou d'exporter les données XML. Les mappages XML de ce classeur ne sont pas exportables."

    Le but étant que dans mon XML, pour chaque ID Entreprise, j'ai tous les salariés qui lui sont associés.

    Une idée?

    Merci d'avance à tous ceux qui pourront m'aider.

  2. #2
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 367
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 367
    Points : 2 411
    Points
    2 411
    Par défaut
    Je ne sais pas trop: mais ce genre de problème me semble occuper un grand nombre de postes partout.

    Je dirais qu'il ne faut pas (trop) faire ce que xslt devrait capable de faire dans une application comme excel ? Faite un schéma plutôt simple refléter une table de colons et lignes... (type clé-valeur) sans hiérachiser les données. Après, on fait une transformation xslt pour résulter ce qu'on souhaîte en avoir. Ce n'est peut-être pas optimal ... En fin de compte, je ne sais pas.

  3. #3
    Membre du Club
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 83
    Points : 48
    Points
    48
    Par défaut
    Merci beaucoup pour ce retour.

    Je vais essayer et continuer à me renseigner sur le net.

    La seule chose ce que j'ai l'impression que sur excel on ne peut pas mapper quand il y a plusieurs racines.

    Or, pour mon projet, je dois respecter des règles qui me sont imposées par un site.

    J'ai son fichier .xsd, mais dès que je peux l'importer sur excel j'ai cet autre problème par rapport aux racines multiples...

    Si d'autres personnes passent par là et ont d'autres idées, je suis preneur.

    D'avance merci

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 367
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 367
    Points : 2 411
    Points
    2 411
    Par défaut
    Si on fait d'un seul schéma (d'un seul namespace ou sans namespace, sans xs:include, et ni xs:import par conséquent, évidemment), on ne peut que faire un schéma très plat refléter une table simple de excel, donc, type clé-valeur. Ce serait très loins d'être normalisée au point de vue de bd avec des entrées souvent lourdement répetitives. C'est ça ce que je veux dire aupravant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
        <xs:element name="contact">
            <xs:annotation>
                <xs:documentation>Test</xs:documentation>
            </xs:annotation>
            <xs:complexType>
                <xs:sequence>
                    <xs:element name="Entrees" maxOccurs="unbounded">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="Entreprise_ID" type="xs:integer"/>
                                <xs:element name="Nom" type="xs:string"/>
                                <xs:element name="Prenom" type="xs:string"/>
                                <xs:element name="Ville" type="xs:string"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>	
                </xs:sequence>
            </xs:complexType>
        </xs:element>
    </xs:schema>
    Avec les données (transformées, via un xslt ou autre, préalablement) re-modelées le schéma, on peut importer et exporter, par conséquent, sans problème. Mais, ce n'est pas optimal, sans doute. Pourtant, xslt est toujours là pour faire son travail.

    Une autre direction, à mon sens, que vous pouvez regarder plus, c'est de dissecter le schéma en plusieurs en utilisant xs:include pour simuler normalisation à la bd. Je n'avais jamais fait ça, donc, je ne sais pas si c'est faisable. Mais, tout ça avec Excel ?! il me faut une forte motivation pour !

  5. #5
    Membre du Club
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 83
    Points : 48
    Points
    48
    Par défaut
    Encore une grand merci pour ce retour.

    C'est justement pour éviter la répétition du Entreprise_ID que je voulais faire ça. Pour encapsuler toutes les info dans un même Entreprise_ID.

    Le but final étant d'importer les données sur un site internet donc je ne connais les conséquences que cela peut avoir si je fais quelque chose de plat comme tu dis.
    Est-ce que je peux quand même importer les données sur le site?

  6. #6
    Membre émérite Avatar de tsuji
    Inscrit en
    octobre 2011
    Messages
    1 367
    Détails du profil
    Informations forums :
    Inscription : octobre 2011
    Messages : 1 367
    Points : 2 411
    Points
    2 411
    Par défaut
    J'ai grande réserve pour faire tout ça avec Excel - j'ai un penchant, sans doute. Si les données sont de taille importante, faites plutôt avec une bd propre, genre très diverse à choisir. Sinon, répetition s'est fait par code (xslt ou autre), jamais par main, alors, c'est la machine qui sue !

  7. #7
    Membre du Club
    Homme Profil pro
    Contrôle de Gestion
    Inscrit en
    juin 2018
    Messages
    83
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Contrôle de Gestion

    Informations forums :
    Inscription : juin 2018
    Messages : 83
    Points : 48
    Points
    48
    Par défaut
    Entendu. Encore merci

    Penses-tu que c'est faisable via ACCESS?

Discussions similaires

  1. [c#] créer document xml à partir d'un schéma xsd
    Par Cédric B. dans le forum Services Web
    Réponses: 3
    Dernier message: 13/04/2011, 10h06
  2. Comment créer un schéma XSD ?
    Par will2taz dans le forum VB.NET
    Réponses: 1
    Dernier message: 28/08/2007, 12h51
  3. [XSD] Comparer deux schémas XSD
    Par solenn29 dans le forum Valider
    Réponses: 4
    Dernier message: 06/02/2006, 10h31
  4. Réponses: 1
    Dernier message: 17/01/2006, 08h42
  5. Utilisation des schémas XSD
    Par sfavre dans le forum Valider
    Réponses: 6
    Dernier message: 28/06/2005, 18h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo