Bonjour,
Je souhaite créer un fichier XML schema au format Format de persistance avecdes données provenant d'une base données mysql.
Je ne connais pas bien les fichiers XML donc je ne suis pas sur que cela soit la bonne définissions de ce que je cherche a faire.
J'ai essayé d'utiliser DocDocument pour créer le fichier XML, ça fonctionne mais le prologue ne convient pas.
Je souhaite créer un prologue au format de persistance, pensez-vous que cela soit possible?
Merci d'avance.
Voici une partie du code DomDocument:
Voici un exemple de xml que je souhaite obtenir:
Voici un exemple de xml que j'obtient:
Modifié par Nesyou75 (25 Mar 2020 - 13:25)
Je souhaite créer un fichier XML schema au format Format de persistance avecdes données provenant d'une base données mysql.
Je ne connais pas bien les fichiers XML donc je ne suis pas sur que cela soit la bonne définissions de ce que je cherche a faire.
J'ai essayé d'utiliser DocDocument pour créer le fichier XML, ça fonctionne mais le prologue ne convient pas.
Je souhaite créer un prologue au format de persistance, pensez-vous que cela soit possible?
Merci d'avance.
Voici une partie du code DomDocument:
<?php
include '../inc/bdd.php';
$stagesall = $bdd->query('SELECT * FROM stages WHERE id ORDER BY date_creation_stage DESC');
$dom = new DOMDocument(''); // instancie un objet DomDocument,
$dom->formatOutput=true; //met au format xml au lieu de en ligne
$schema = $dom->createElement('s:Schema'); //creer l'element parent Schema
$schema->setAttribute('id', 'RowsetSchema');
$dom->appendChild($schema); //creer l'element parent Schema
$elementType = $dom->createElement('s:ElementType'); //creer l'element fils elementType de schema
$elementType->setAttribute('name', 'row');
$elementType->setAttribute('content', 'eltOnly');
$elementType->setAttribute('rs:updatable', 'true');
$schema->appendChild($elementType); //creer l'element parent
// attributeType MatchId
$attributeType = $dom->createElement('s:AttributeType'); //creer l'element fils AttributeType de ElementType
$attributeType->setAttribute('name', 'MatchId');
$attributeType->setAttribute('rs:number', '1');
$attributeType->setAttribute('rs:nullable', 'true');
$attributeType->setAttribute('rs:maydefer', 'true');
$attributeType->setAttribute('rs:writeunknown', 'true');
$attributeType->setAttribute('rs:basetable', 'tblMatchStage');
$attributeType->setAttribute('rs:basecolumn', 'MatchId');
$attributeType->setAttribute('rs:keycolumn', 'true');
$elementType->appendChild($attributeType); //creer l'element parent
$datatype = $dom->createElement('s:datatype'); //creer l'element fils datatype de elementType
$datatype->setAttribute('dt:type', 'int');
$datatype->setAttribute('dt:maxLength', '4');
$datatype->setAttribute('rs:precision', '10');
$datatype->setAttribute('rs:fixedlength', 'true');
$attributeType->appendChild($datatype); //creer l'element parent
// createElement extends
$extends = $dom->createElement('s:extends'); //creer l'element fils datatype de elementType
$extends->setAttribute('type', 'rs:rowbase');
$elementType->appendChild($extends); //creer l'element paren
$data = $dom->createElement('rs:data'); //creer l'element parent data
$dom->appendChild($data); //creer l'element parent
//$dom->load('WinMSS_template/STAGE.xml'); // Chargement d'un fichier XML
// stage
while ($row = $stagesall->fetch()) { //boucle pour recuperer la table stages
$zrow = $dom->createElement('z:row'); //creer l'element fils du parent data
$zrow->setAttribute('MatchId', $row['matchsid']); //creer attribute fils du parent z:row avec value from table
$zrow->setAttribute('StageId', $row['numstage']);
$data->appendChild($zrow); //creer l'element fils du parent data
// $addbalisefin = $dom->createElement('</xml>'); //creer l'element parent Schema
// $dom->appendChild($addbalisefin); //creer l'element parent Schema
}
echo "<xmp>" .$dom->saveXML()."</xmp>";
$dom->save("STAGE.xml") or die ("Error, Unnable to create XML file.");
// $dom->validate(); //Validation d'un document XML
Voici un exemple de xml que je souhaite obtenir:
<xml xmlns:s='uuid:BDC6E3F0-6DA3-11d1-A2A3-00AA00C14882'
xmlns:dt='uuid:C2F41010-65B3-11d1-A29F-00AA00C14882'
xmlns:rs='urn:schemas-microsoft-com:rowset'
xmlns:z='#RowsetSchema'>
<s:Schema id='RowsetSchema'>
<s:ElementType name='row' content='eltOnly' rs:updatable='true'>
<s:AttributeType name='MatchId' rs:number='1' rs:nullable='true' rs:maydefer='true' rs:writeunknown='true'
rs:basetable='tblMatchStage' rs:basecolumn='MatchId' rs:keycolumn='true'>
<s:datatype dt:type='int' dt:maxLength='4' rs:precision='10' rs:fixedlength='true'/>
</s:AttributeType>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row MatchId='1' StageId='3' StageName='test3' Location='Ctcm-91' FirearmId='1' CourseId='1' ScoringId='1'
TrgtTypeId='2' IcsStageId='0' Remove='True' TrgtPaper='8' TrgtPopper='0' TrgtPlates='0' TrgtVanish='1' TrgtPenlty='1'
MinRounds='16' ReportOn='True' MaxPoints='80' StartPos='Standing erect, facing downrange, with arms hanging naturally by the sides.'
StartOn='10' StringCnt='0' Descriptn='Engage targets as they become visible.'/>
</rs:data>
</xml>
Voici un exemple de xml que j'obtient:
<?xml version=""?>
<s:Schema id="RowsetSchema">
<s:ElementType name="row" content="eltOnly" rs:updatable="true">
<s:AttributeType name="MatchId" rs:number="1" rs:nullable="true" rs:maydefer="true" rs:writeunknown="true" rs:basetable="tblMatchStage" rs:basecolumn="MatchId" rs:keycolumn="true">
<s:datatype dt:type="int" dt:maxLength="4" rs:precision="10" rs:fixedlength="true"/>
</s:AttributeType>
<s:extends type="rs:rowbase"/>
</s:ElementType>
</s:Schema>
<rs:data>
<z:row MatchId="24" StageId="6" StageName="2juukkkk" Location="" FirearmId="1" CourseId="1" ScoringId="1" TrgtTypeId="2" IcsStageId="" Remove="" TrgtPaper="7" TrgtPopper="1" TrgtPlates="0" TrgtVanish="0" TrgtPenlty="0" ReportOn="0" MaxPoints="95" StartPos="Exemple: Standing erect, facing downrange with arms hanging naturally by the sides." StartOn="0" StringCnt="0" Descriptn="Exemple: Engage targets as they become visible."/>
</rs:data>
Modifié par Nesyou75 (25 Mar 2020 - 13:25)