2

这是一个 XML 示例:

<Search ID="Blah"
        input="Some search"
        line1="first line of result"
        line2="second line of result"
        line3="third line of result"
        />

名为 line1 到 line3 的属性是可选的且未绑定 - 给定的搜索元素可以具有一直到 line99 或其他内容的行属性(实际上从不高于 2 位)。有没有办法在 XML 模式中指定可接受的属性名称模式,以便我可以验证这一点,而无需手动指定所有可选属性名称,直到我实际使用的任何属性名称?

理想情况下,我想要以下内容:

<xs:attribute name="line[0-9][0-9]" type="xs:string" use="optional" />

在架构定义中。

我怀疑这是不可能的,但我所做的所有搜索都试图确定最终找到在属性的实际值上使用模式的方法,而不是它们的名称,所以如果有人可以请确认这是否可能与否,那就太好了。

4

1 回答 1

1

不,那是不可能的。如果您阅读关于属性声明的 XML 规范,您会注意到属性名称的类型为NCName,其中不包括[and]字符。

另一方面,使用属性来传达查询结果是一种非常奇怪的用法。一种更自然的格式是

<search id="..." input="...">
    <result>
       <line nr="1">bla bla</line>
       <line nr="2">more bla bla</line>
       ...
       <line nr="99">extra bla</line>
    </result>
</search>
于 2012-12-04T10:46:18.433 回答