2016-06-06 14 views
0

Ich bin wirklich neu arbeiten mit XML, XSD oder XSLT.Vorhandensein von xsd Link überschreiben xslt

Was ich bin versucht, ist die folgende:

  • Ausgangsdaten werden im XML-Format übertragen.
  • Der Benutzer kann die XML-Datei
  • Der Benutzer wird nicht verwendet, um XML und will die Ansicht, die die Daten in einem schönen Tisch anstelle von XML-Code
  • ich eine XSLT-Datei zu diesem Zweck erstellt überprüfen

Ich bin fertig mit der XSLT-Datei (neben der Anpassung des Farbschemas usw.). Das Problem, das ich jetzt habe, ist, dass in der XML-Datei eine Verknüpfung zu einer externen xsd-Datei (xmlns = ..) ist. Solange dieser Code vorhanden ist, fehlt dem gerenderten XML die extrahierte Eingabe (xsl: value-of select = ...).

<?xml version="1.0" encoding="UTF-8"?> 
<?xml-stylesheet type="text/xsl" href="test.xsl"?> 
<Table1 xmlns="http://www.test.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 

Mein XSLT-Code sieht wie folgt aus:

<?xml version="1.0" encoding="UTF-8"?> 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
<xsl:template match="/"> 
    <html> 
    <body> 
    <table border="1"> 
    <tr> 
    <td> 
    Id of 
    </td> 
    <td> 
    <xsl:value-of select="//idOf"/> 
    </td>  
    </tr> 
    </table> 
    </body> 
    </html> 
</xsl:template> 
</xsl:stylesheet> 

Was mache ich falsch?

THX!

Antwort

0

Try (edited michael.hor257k Kommentar nach)

<xsl:stylesheet version="2.0" 
xmlns:test="http://www.test.xsd" 
xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
exclude-result-prefixes="test"> 

und fügen Sie dann test: alle Sie Ihre XML-Struktur accesssing, z.B. <xsl:value-of select="//test:idOf"/>

Die xmlns = „http: //www.test.xsd“ ist nicht nur ein „Link“ in der XML, aber es erklärt die Standard-Namespace - hier XSD als Dateierweiterung kann eine Geschmackssache sein Sie können jedoch nicht auf die Daten im XML zugreifen, ohne sie zu verwenden.

+1

Ein paar Korrekturen: ** 1. ** Eine Namespace-Deklaration ist überhaupt kein Link **. - ** 2. ** "exclude-result-prefixes =" xsi "' sollte "exclude-result-prefixes =" test "" - ** 3 sein. ** 'xmlns: xsi =" http: // www.w3.org/2001/XMLSchema-instance "' ist überflüssig. –

+0

1. Ja Link ist die falsche Beschreibung. 2. Funktioniert wie ein Charme! @StefanHegny Was meinst du mit dem Inhalt in einem gemangelt? THX euch beide! –

+0

Über den entstellten Inhalt dachte ich, wenn Sie mehrere Tests hätten: id0f entries wollten Sie sie in separaten Tabellenzellen und das wäre dann ein bisschen anders xslt. Newby XSLT-Programmierer könnten diese Falle treffen. Aber wenn das nicht der Fall ist entschuldige ich mich –