Salutations!La fonction document XSLT renvoie le résultat vide sur Maven POM
Je souhaite extraire certaines propriétés de différents POM Maven dans un XSLT via la fonction de document. Le script lui-même fonctionne bien mais la fonction document renvoie un résultat vide pour le POM tant que j'ai le xmlns = "http://maven.apache.org/POM/4.0.0" dans la balise de projet. Si je l'enlève, tout fonctionne bien.
Une idée comment faire ce travail tout en laissant l'attribut xmlns où il appartient ou pourquoi cela ne fonctionne pas avec l'attribut en place?
vient ici la partie pertinente de mon XSLT:
<xsl:template match="abcs">
<xsl:variable name="artifactCoordinate" select="abc"/>
<xsl:choose>
<xsl:when test="document(concat($artifactCoordinate,'-pom.xml'))">
<abc>
<ID><xsl:value-of select="$artifactCoordinate"/></ID>
<xsl:copy-of select="document(concat($artifactCoordinate,'-pom.xml'))/project/properties"/>
</abc>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">
Transformation failed: POM "<xsl:value-of select="concat($artifactCoordinate,'-pom.xml')"/>" doesn't exist.
</xsl:message>
</xsl:otherwise>
</xsl:choose>
Et, pour être complet, un extrait de POM avec l'attribut "mauvais":
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<!-- ... -->
<properties>
<proalpha.version>[5.2a]</proalpha.version>
<proalpha.openedge.version>[10.1B]</proalpha.openedge.version>
<proalpha.optimierer.version>[1.1]</proalpha.optimierer.version>
<proalpha.sonic.version>[7.6.1]</proalpha.sonic.version>
</properties>
</project>
Bonne question (+1). Voir ma réponse pour une explication du problème et pour la solution la plus souvent utilisée. :) –