我正在尝试构建一个 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”的节点并使用他们选择的任何命名空间。