我對XSL相當陌生,需要幫助解決轉換問題。我有一個由XSD描述的XML文件。我使用XSL文件將XML轉換爲HTML。我想在XML文件中引用XSD,但是當我這樣做時,XML不會被轉換。在xml中引用xsd時出現xsl轉換問題
例XML:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="example.xsl"?>
<root>
<!--
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://localhost" xsi:schemaLocation="http://localhost example.xsd">
-->
<element>Element 1</element>
<element>Element 2</element>
<element>Element 3</element>
</root>
例XSL:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<ul>
<xsl:for-each select="root/element">
<li><xsl:value-of select="."/></li>
</xsl:for-each>
</ul>
</xsl:template>
</xsl:stylesheet>
例XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://localhost"
xmlns="http://localhost"
elementFormDefault="qualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="element" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
在XML中,如果我使用註釋了根標籤,Firefox和鉻不要轉換xml。如果我只是使用<根標記,那麼轉換髮生得很好。
任何人都可以解釋爲什麼XSL轉換不會發生,如果我在我的XML參考XSD?任何幫助表示讚賞!
好問題,+1。請參閱我的答案以獲得解釋和完整解:) – 2011-01-06 03:21:59
除了@Dimitre正確的答案,請注意,定義一個模式爲空(或空)名稱空間URI – 2011-01-06 15:21:52
正確指出。謝謝! – Jpnh 2011-01-06 19:30:31