特定のノードを「インライン」スタイルシートに制限する XSD を作成しようとしています。
おそらく次のようになります。
<complexType name="InlineXslt">
<sequence>
<any minOccurs="1" maxOccurs="1" FORCE_NAMESPACE="http://www.w3.org/1999/XSL/Transform" />
</sequence>
</complexType>
多分...
<complexType name="InlineXslt">
<sequence>
<element name="stylesheet" minOccurs="1" maxOccurs="1" FORCE_NAMESPACE="http://www.w3.org/1999/XSL/Transform" />
</sequence>
</complexType>
もちろん、FORCE_NAMESPACE 属性はありませんが、ノードに強制的に XSL 名前空間を使用させるという考え方です。この制限を指定できる同等の構文はありますか? 適合する XML は次のようになります。
<InlineXslt>
<stylesheet version="1.0" xmlns="http://www.w3.org/1999/XSL/Transform">
<... etc ...>
</stylesheet>
</InlineXslt>
最初の XSD の例で (存在しない) "FORCE_NAMESPACE" 属性を省略した場合、それは機能しますが、強制されません。「any」要素を使用しているため、ユーザーは、「stylesheet」という名前のないノードや、選択した任意の名前空間を使用するノードなど、必要なものをそこに配置できます。