appliquer 2 préfixes de 2 xmlns à un fichier sans namespace
Bonjour,
Au départ, j'ai un fichier XML avec mes données mais sans namespace/espace de nom et sans préfixe :
Code:
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
| <?xml version="1.0"?>
<LRFacturasEmitidas>
<RegistroLRFacturasEmitidas>
<Periodo>
<Ejercicio>2017</Ejercicio>
<Periodo>01</Periodo>
</Periodo>
<FacturaExpedida>
<TipoFactura>T1</TipoFactura>
<Regimen>R1</Regimen>
<ImporteTotal>383.81</ImporteTotal>
</FacturaExpedida>
</RegistroLRFacturasEmitidas>
<RegistroLRFacturasEmitidas>
<Periodo>
<Ejercicio>2017</Ejercicio>
<Periodo>01</Periodo>
</Periodo>
<FacturaExpedida>
<TipoFactura>T1</TipoFactura>
<Regimen>R1</Regimen>
<ImporteTotal>177.14</ImporteTotal>
</FacturaExpedida>
</RegistroLRFacturasEmitidas>
</LRFacturasEmitidas> |
Au début du fichier XML, on voit une définition on-ne-peut-plus-simple.
à l'arrivée, je voudrais obtenir ceci où il y a deux namespaces et chaque élément fait référence à l'un ou l'autre namespace sii ou siiLR :
Code:
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
| <?xml version="1.0"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:siiLR="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroLR.xsd"
xmlns:sii="https://www2.agenciatributaria.gob.es/static_files/common/internet/dep/aplicaciones/es/aeat/ssii/fact/ws/SuministroInformacion.xsd">
<siiLR:LRFacturasEmitidas>
<siiLR:RegistroLRFacturasEmitidas>
<sii:Periodo>
<sii:Ejercicio>2017</sii:Ejercicio>
<sii:Periodo>01</sii:Periodo>
</sii:Periodo>
<siiLR:FacturaExpedida>
<sii:TipoFactura>T1</sii:TipoFactura>
<sii:Regimen>R1</sii:Regimen>
<sii:ImporteTotal>383.81</sii:ImporteTotal>
</siiLR:FacturaExpedida>
</siiLR:RegistroLRFacturasEmitidas>
<siiLR:RegistroLRFacturasEmitidas>
<sii:Periodo>
<sii:Ejercicio>2017</sii:Ejercicio>
<sii:Periodo>01</sii:Periodo>
</sii:Periodo>
<siiLR:FacturaExpedida>
<sii:TipoFactura>T1</sii:TipoFactura>
<sii:Regimen>R1</sii:Regimen>
<sii:ImporteTotal>177.14</sii:ImporteTotal>
</siiLR:FacturaExpedida>
</siiLR:RegistroLRFacturasEmitidas>
</siiLR:LRFacturasEmitidas>
</soapenv:Envelope> |
Comme vous voyez, certains noeuds ont le préfixe siiLR et certains noeuds fils ont un préfixe sii.
Je suis parvenu à écrire une transformation xslt pour avoir les deux définitions en début de XML et pour avoir tous les noeuds avec le préfixe sii LR ou tous les noeuds avec sii mais je ne parviens pas à avoir les deux en même temps.
Comment dois-je m'y prendre pour aboutir à
- une définition contenant la référence aux 2 namespaces
- les noeuds principaux avec le préfixe siiLR
- les noeuds secondaires avec le préfixe sii
Merci pour votre aide.