Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于父元素的XML XSD验证?_Xml_Xsd_Xsd Validation_Xml Validation - Fatal编程技术网

基于父元素的XML XSD验证?

基于父元素的XML XSD验证?,xml,xsd,xsd-validation,xml-validation,Xml,Xsd,Xsd Validation,Xml Validation,是否可以“有条件地”验证XSD文件中的XML节点?也就是说,是否基于父节点名称对其进行验证 例如: 一些文本 一些文本 对parentA中使用的值的验证如下所示: 对parentB中使用的值的验证将不同: 是的,即使在XSD 1.0中,本地声明的元素的类型也可以根据父元素提供的上下文而有所不同: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSc

是否可以“有条件地”验证XSD文件中的XML节点?也就是说,是否基于父节点名称对其进行验证

例如:


一些文本
一些文本
parentA
中使用的
值的验证如下所示:


parentB
中使用的
值的验证将不同:


是的,即使在XSD 1.0中,本地声明的元素的类型也可以根据父元素提供的上下文而有所不同:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="rootNode">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="ParentA">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="value">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="10"/>
                    <xs:minLength value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ParentB">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="value">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="4"/>
                    <xs:minLength value="0"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

ParentA
中的
value
元素的类型与
ParentB
中的
value
元素的类型不同