У меня есть преобразование XSLT
с учетом схемы, которое хорошо работает. Однако ожидаемые пользователи XSLT
, скорее всего, не будут иметь доступа к обработчику схемы . Таким образом, я хотел бы написать некоторый код, который преобразует мой XSLT
с поддержкой схемы в XSLT, который может использоваться процессорами, соответствующими базовому уровню.
В моих целях использование конструкций с поддержкой схемы ограничено соответствующими шаблонами, т.е.
<xsl:template match="element(*, Candidate)">...</>
Я не ожидаю, что это будет полностью автоматический процесс. Я хотел бы сгенерировать XSLT
, который для каждого complexType
в XSD
нашел бы его использование в указанной поверхности XSD
element
.
Пример кода:
<xsd:schema xmlns="example.xsd" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="example.xsd" elementFormDefault="qualified" version="0.0">
<xsd:element name="Candidate" type="Candidate"/>
<xsd:complexType name="Candidate">
<xsd:sequence>
<xsd:element name="Code" type="Code" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element name="Name" type="xsd:string" minOccurs="0"/>
<xsd:element name="PartyId" type="Code" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="Code">
<xsd:sequence>
<xsd:element name="Value" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Ожидаемый результат для элемента Candidate
будет примерно таким:
<complexType_usages>
<usage complexType="Code" path="Candidate/Code" />
<usage complexType="Code" path="Candidate/Party" />
</complexType_usages>