具有特定内容的子元素的maxOccurs的XSD验证

时间:2018-02-20 08:34:28

标签: xml xsd

我想用模式

验证一些XML
<T1>
 <T2>
  <Flag>F1</Flag>
  <someNodes></someNodes>
 </T2>
 <T2>
  <Flag>F2</Flag>
  <someNode></someNode>
 </T2>
 <T2>
  <Flag>F3</Flag>
  <someNode></someNode>
 </T2>
</T1>

我想要这样

  1. 在每个T1中,最多只能有6个T2
  2. 在每个T1中,只有最多1个T2,元素Flag为子,值为F3
  3. 可行吗?我应该在什么样的关键词中搜索教程?

1 个答案:

答案 0 :(得分:0)

这可以解决你的问题吗?

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Data_XMLSchema"
    targetNamespace="http://tempuri.org/Data_XMLSchema.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/Data_XMLSchema.xsd"
    xmlns:mstns="http://tempuri.org/Data_XMLSchema.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:element name="T1">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="T1" minOccurs="1" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="T2" minOccurs="1" maxOccurs="6">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="flag" minOccurs="1" maxOccurs="1"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>          
        </xs:element>
      </xs:sequence>      
    </xs:complexType>
  </xs:element>
</xs:schema>