Property1 と SubProperty2 を選択し、その他のプロパティを取り除く必要があります。xml に追加された新しいプロパティが検証を破らないように、この将来の証拠を作成する必要があります。iow の新しいフィールドは、デフォルトで削除する必要があります。
<Root>
<Property1/>
<Property2/>
<Thing>
<SubProperty1/>
<SubProperty2/>
</Thing>
<VariousProperties/>
</Root>
だから私のxsltで私はこれをしました:
<xsl:template match="Property1">
<Property1>
<xsl:apply-templates/>
</Property1>
</xsl:template>
<xsl:template match="/Thing">
<SubProperty1>
<xsl:apply-templates select="SubProperty1" />
</SubProperty1>
</xsl:template>
<xsl:template match="*" />
最後の行は、選択するように定義していないものをすべて削除する必要があります。
これは私のプロパティ 1 を選択するために機能しますが、サブプロパティには常に空のノードが選択されます。* の一致は、それらの一致が機能する前に、より深いオブジェクトを取り除いているようです。* の一致を削除すると、サブプロパティが値で選択されます。では、サブ プロパティを選択して、使用していないものをすべて取り除くにはどうすればよいでしょうか。
アドバイスをありがとう。