Bonjour
j'ai un petit pb avec une xslt 1.0.
J'ai une transformation qui produite un élément comme ceci
1 2 3 4 5 6 7 8 9 10 11
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns="urn:fr.aphp.ati.eai.hermes.ng446.copilote.idoc"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:ns1="urn:fr.aphp.ati.eai.hermes.ng446.pivot"
exclude-result-prefixes="ns1">
<xsl:output indent="yes" encoding="ISO-8859-1" method="xml" version="1.0" />
<xsl:template match="/ns1:reservation">
<p:COPILOTE xmlns:p="urn:fr.aphp.ati.eai.hermes.ng446.copilote"
xmlns="urn:fr.aphp.ati.eai.hermes.ng446.copilote.idoc">
... |
Avec la plus part des outil cela fonctionne mais pas avec ma plateforme de production qui fait une erreur
"L'attribut *** n'est pas admis sur l'élément ***"
J'avais ce message d'erreur sur une autre transformation dans laquelle j'avaisL'attribut "BEGIN" n'est pas admis sur l'élément IDOC !; Line#: 14; Column#: 22
Je l'ai résolu en faisant
1 2
| <xsl:element name="IDOC">
<xsl:attribute name="BEGIN">1</xsl:attribute> |
J'ai donc cherché à faire pareil avec p:COPILOTE mais là il ne s'agit pas de simple attributs mais de namespaces.
1 2 3 4 5 6 7 8 9 10 11 12
| <?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns="urn:fr.aphp.ati.eai.hermes.ng446.copilote.idoc"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:ns1="urn:fr.aphp.ati.eai.hermes.ng446.pivot"
xmlns:p="urn:fr.aphp.ati.eai.hermes.ng446.copilote"
exclude-result-prefixes="ns1">
<xsl:output indent="yes" encoding="ISO-8859-1" method="xml" version="1.0" />
<xsl:template match="/ns1:reservation">
<xsl:element name="p:COPILOTE" namespace="urn:fr.aphp.ati.eai.hermes.ng446.copilote">
<!--xsl:attribute name="xmlns:p">urn:fr.aphp.ati.eai.hermes.ng446.copilote</xsl:attribute-->
<!--xsl:attribute name="xmlns>urn:fr.aphp.ati.eai.hermes.ng446.copilote.idoc</xsl:attribute--> |
mon problème est que je n'arrive pas à ajouter le deuxième namespace.
Je précise que je ne recopie pas une structure pour lui ajouter une namespace je crée un simple élément avec deux namespaces et une valeur.
J'ai trouvé beaucoup d'exemple sur le net pour copier ou remplacer un préfixe par un autre. cela n'est pas du tout mon problème.
je cherche simplement comment traduire
1 2
| <p:COPILOTE xmlns:p="urn:fr.aphp.ati.eai.hermes.ng446.copilote"
xmlns="urn:fr.aphp.ati.eai.hermes.ng446.copilote.idoc"> |
en utilisant la syntaxe
<xsl:element name="p:COPILOTE" namespace="urn:fr.aphp.ati.eai.hermes.ng446.copilote">
Merci de votre aide.
A+JYT
Partager