2016-07-11 11 views
0

Ich versuche, eine Anwendung von Java 5 bis java8 und von jboss5 zu konvertieren wildfly10 Das hat uns keine Probleme geben, bevor soweit ich weißXSL: wie Namespace tns definieren

<xsl:if test="name()='xsd:schema'"> 
    <xsl:attribute name="targetNamespace">http://ws.mycomp.com/obfustream/</xsl:attribute> 
    <xsl:attribute name="xmlns:tns">http://ws.mycomp.com/obfustream/</xsl:attribute> 
    </xsl:if> 

die erste Linie geht in Ordnung, aber die zweite Zeile wird mit Fehler:

ERROR: 'line 13: You cannot call an attribute 'xmlns:tns''

+0

Sieht aus, als ob Sie auf einem Fehler in dem XSLT-Prozessor angewiesen wurden und der Fehler behoben wurde. Sie können das xsl: -Attribut nicht zum Erstellen von Namespaces verwenden. Auch der Test auf 'name()' ist hier sehr fragwürdig, da er auf der Wahl des Namespacepräfixes beruht. Viel besser wäre 'test =" self :: xsd: schema "'. –

Antwort

0

Antwort: ich hinzugefügt: xmlns: tns = "http://www.w3.org/2001/XMLSchema-instance" in den

<xsl:stylesheet version="1.0" 
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:tns="http://www.w3.org/2001/XMLSchema-instance" > 

und hinzugefügt

<xsl:attribute name="tns:type">http://ws.gbst.com/clearview/</xsl:attribute> 

in

<xsl:if test="name()='xsd:schema'"> 
    <xsl:attribute name="targetNamespace">http://ws.mycomp.com/obfustream/</xsl:attribute> 
     <xsl:attribute name="tns:type">http://ws.mycomp.com/obfustream/</xsl:attribute> 
    </xsl:if>