简体   繁体   English

用属性值验证元素值

[英]validate element value with attribute value

<list count="3">foo bar baz</list>

有没有什么方法可以检查list元素是否包含3个元素,就像在属性count所说的那样?

XSD 1.0 alone cannot enforce this constraint, but XSD 1.1 can via xs:assert : 单独的XSD 1.0不能强制执行此约束,但是XSD 1.1可以通过xs:assert

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" 
           elementFormDefault="qualified" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
           vc:minVersion="1.1">

  <xs:element name="list">
    <xs:complexType>
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="count" use="required" type="xs:int"/>        
        <xs:assert test="count(tokenize(., ' ')) = @count"/>
      </xs:extension>
    </xs:simpleContent>
    </xs:complexType>
  </xs:element>
</xs:schema>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM