Bonjour,

Au départ, j'ai un fichier XML avec mes données mais sans namespace/espace de nom et sans préfixe :
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
<?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 : 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
<?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.