Я довольно новичок в XSL и нуждаюсь в помощи с проблемой трансформации. У меня есть XML-файл, который описывается XSD. Я использую XSL-файл для преобразования XML в HTML. Я хочу ссылаться на XSD в XML-файле, но когда я делаю XML, он не преобразуется.Проблема преобразования xsl при ссылке xsd в xml
Пример 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 и Chrome не преобразуйте xml. Если я просто использую простой < корень > тег, однако преобразование происходит нормально.
Может ли кто-нибудь объяснить, почему преобразование XSL не происходит, если я ссылаюсь на XSD в своем XML? Любая помощь приветствуется!
Хороший вопрос, +1. См. Мой ответ для объяснения и полного решения. :) –
Кроме того, @Dimitre правильный ответ, обратите внимание, что можно определить схему для элементов под нулевым (или пустым) пространством имен URI –
Соответственно. Благодаря! – Jpnh