Преобразование 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 достигают. У меня проблемы с этим, как правило, для всех элементов и всех атрибутов.

Ответы на вопрос(2)

Ваш ответ на вопрос