在XSD中列入白名单

时间:2017-03-20 10:07:35

标签: xml xslt xsd schema

我必须创建和XSD,我必须允许/禁止某些属性组合。

在Code Down中,应该允许第一个“东西”。

第二个“东西”应该被禁止,因为它不匹配我的模板(但它可能是任何东西,它不是特别booooforbidden)但我还必须允许多个可能的属性值。

第三件事是禁止的,因为标题是不允许的。

现在超级棘手的部分:在第4个“事物”中,标题被禁止,但它是一个例外。通常情况下,具有该标题的所有内容都将被禁止,但应该允许该标题。 有没有人知道如何做到这一点?我真是太棒了,谢谢你

   <thing title="jack_theRipper">
    <something value1="imallowed" value2="boooo"/>
   </thing>
   <thing title="jack_theRipper">
    <something value1="imallowed" value2="booooforbidden"/>
   </thing>
   <thing title="jack_theRipperforbidden">
     <something value1="imtext" value2="boooo"/>
   </thing>
   <thing title="jack_theRipperforbidden">
     <something value1="imtextallowed" value2="boooo"/>
   </thing>

黑名单不起作用,因为它可能是任何作为值插入的内容,我只需要允许一些组合

1 个答案:

答案 0 :(得分:0)

单个XSD组件值

单个组件值的白名单(允许的值的规范)是在XSD中表达数据类型约束的常规方法。对于字符串,通常使用枚举。

单个值的黑名单(不允许值的规范)功能在XSD 1.0中受到限制,但可以通过XSD 1.1中的断言来完成。

XSD组件值的组合

组件值的白名单或黑名单需要XSD 1.1的断言。