IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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 :

[XML][XSD] ajout xml DANS une balise xsd


Sujet :

XML/XSL et SOAP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 32
    Points : 37
    Points
    37
    Par défaut [XML][XSD] ajout xml DANS une balise xsd
    Bonjour a tous,

    Voila, je travaille sur ce fichier generé en C# et passé a un webService nuSoap donc edition en php.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
     
    <?xml version="1.0" encoding="utf-8"?>
    <DataSet>
        <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema"
            xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
            <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
                <xs:complexType>
                    <xs:choice minOccurs="0" maxOccurs="unbounded">
                        <xs:element name="xml">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="Id" msdata:AutoIncrement="true" type="xs:int"/>
                                    <xs:element name="Nom" minOccurs="0">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="7"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Prenom" minOccurs="0">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="8"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Rue" minOccurs="0">
                                        <xs:simpleType>
                                            <xs:restriction base="xs:string">
                                                <xs:maxLength value="10"/>
                                            </xs:restriction>
                                        </xs:simpleType>
                                    </xs:element>
                                    <xs:element name="Nbr" type="xs:int" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:choice>
                </xs:complexType>
                <xs:unique name="Constraint1" msdata:PrimaryKey="true">
                    <xs:selector xpath=".//xml"/>
                    <xs:field xpath="Id"/>
                </xs:unique>
            </xs:element>
        </xs:schema>
        <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
            xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"/>
    </DataSet>
    d'apres ce que j'ai pu comprendre, c'est la la partie XSD.

    ce que je voudrais c'est ajouter du contenu XML dans la balise "diffgr:diffgram" pour obtenir ceci,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
            <NewDataSet>
                <projet diffgr:id="projet1" msdata:rowOrder="0">
                    ...
                </projet>
                <projet diffgr:id="projet2" msdata:rowOrder="1">
                    ...
                </projet>
            </NewDataSet>
        </diffgr:diffgram>
    merci de vous laisser aller

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    32
    Détails du profil
    Informations personnelles :
    Âge : 60
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 32
    Points : 37
    Points
    37
    Par défaut
    dites les gars ....

    Cherchez plus ...j'ai trouvé

    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
    31
    32
    33
    34
    35
    36
    37
    38
     
    function simplexml_append(SimpleXMLElement $parent, SimpleXMLElement $new_child){
       $node1 = dom_import_simplexml($parent);
       $dom_sxe = dom_import_simplexml($new_child);
       $node2 = $node1->ownerDocument->importNode($dom_sxe, true);
       $node1->appendChild($node2);
    }
     
    function _FillDataSet($serialisedDataSet,$tableName,$condition) {
    	$xmlDataSet = simplexml_load_string(trim($serialisedDataSet, " ?."));
    	$xmlDataSet->registerXPathNamespace('diffgr', 'urn:schemas-microsoft-com:xml-diffgram-v1');
    	$diffgr = $xmlDataSet->xpath('//diffgr:diffgram');
     
     
    	$NewDataSet = new SimpleXMLElement('<NewDataSet></NewDataSet>');
     
     
    	//$NewDataSet = $xmlDataSet->addChild('NewDataSet');
    	openDb();
    	$result = mysql_query("select * from ".$tableName) or die;
    	$j = 0;
    	while ($row = mysql_fetch_assoc($result)) {
    		$tableRow = $NewDataSet->addChild($tableName);
    		$tableRow->addAttribute('msdata:rowOrder',$j++,'urn:schemas-microsoft-com:xml-msdata');
    		$tableRow->addAttribute('diffgr:id', $tableName.$j,'urn:schemas-microsoft-com:xml-diffgram-v1');
    		$i=0;
    		while ($i < mysql_num_fields($result)) {
    			$meta = mysql_fetch_field($result, $i);
    			$tableRow->addChild($meta->name,$row[$meta->name]);
    			$i++;
    		}
    	}
     
    	simplexml_append($diffgr[0],$NewDataSet);
     
     
    	return $xmlDataSet->asXML();
    }
    et boum

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ajout aléatoire d'une String dans une balise XML à partir d'un tableau de String
    Par chebmo1986 dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 19/03/2009, 11h21
  2. Réponses: 2
    Dernier message: 17/04/2008, 12h30
  3. [D6 => XML] Récupération de données dans une balise
    Par Bason_sensei dans le forum Delphi
    Réponses: 10
    Dernier message: 22/05/2006, 17h15
  4. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03
  5. problème xsl : inclure une donnée xml dans une balise html
    Par djodjo dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 03/01/2003, 09h24

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