Поскольку я новичок в xslt/xsd-программировании, я использую XMLSpy для создания преобразования xml2xml. Для обоих xml у меня есть xsd. К сожалению, следующий фрагмент кода недействителен.
<xsl:template match="/">
<table xsi:noNamespaceSchemaLocation="table.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<xsl:for-each select="table/body/line">
<row>
</row>
</xsl:for-each>
</table>
</xsl:template>
В сообщении об ошибке говорится, что элемент строки ожидается после таблицы.
Подробности (переведено): элемент <xsl:for-each>
не ожидался типа {anonymous} элемента <table>
.
Проблему можно решить, удалив ссылку на xsd или удалив оператор for-each.
Однако я не могу понять, что не так. Насколько я понимаю, цикл for-each должен просто повторять теги <row>
для каждой строки в первом xml.
Вот часть xsd цели.
<xs:element name="table">
<xs:complexType>
<xs:sequence>
<xs:element ref="row" maxOccurs="unbounded"/>
<xs:element ref="Metadata" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>