¡Saludos!XSLT La función de documento devuelve el resultado vacío en Maven POM
Quiero extraer algunas propiedades de diferentes POM Maven en un XSLT a través de la función de documento. La secuencia de comandos en sí funciona bien, pero la función de documento devuelve un resultado vacío para el POM, siempre que tenga el xmlns = "http://maven.apache.org/POM/4.0.0" en la etiqueta del proyecto. Si lo elimino, todo funciona bien.
¿Alguna idea de cómo hacer que esto funcione mientras se deja el atributo xmlns a donde pertenece o por qué esto no funciona con el atributo en su lugar?
Aquí viene la parte relevante de mi 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>
y como complemento, un extracto de POM con el "malo" de atributos:
<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>
Buena pregunta (+1). Consulte mi respuesta para obtener una explicación del problema y la solución más utilizada. :) –