Преобразование XML в соответствии с XSD с использованием XSLT
Я хотел бы создать XSLT, который может преобразовывать XML, чтобы все элементы и атрибуты, которые не определены в XSD, были исключены из выходного XML (из XSLT).
Допустим, у вас есть этот XSD.
<xs:element name="parent">
<xs:complexType>
<xs:sequence>
<xs:element name="keptElement1" />
<xs:element name="keptElement2" />
</xs:sequence>
<xs:attribute name="keptAttribute1" />
<xs:attribute name="keptAttribute2" />
</complexType>
</xsd:element>
И у вас есть этот входной XML
<parent keptAttribute1="kept"
keptAttribute2="kept"
notKeptAttribute3="not kept"
notKeptAttribute4="not kept">
<notKeptElement0>not kept</notKeptElement0>
<keptElement1>kept</keptElement1>
<keptElement2>kept</keptElement2>
<notKeptElement3>not kept</notKeptElement3>
</parent>
Тогда я хотел бы, чтобы выходной XML выглядел следующим образом.
<parent keptAttribute1="kept"
keptAttribute2="kept">
<keptElement1>kept</keptElement1>
<keptElement2>kept</keptElement2>
</parent>
Я могу сделать это, указав элементы, но это примерно так, как мои навыки xslt достигают. У меня проблемы с этим, как правило, для всех элементов и всех атрибутов.