test.xml
<?xml version="1.0" encoding="utf-8" ?><test>
    <source>
        <source>
            <source></source>
        </source>
    </source>
    <source>
    </source>
</test>
以上是一个由根节点test和一系列source节点组成的xml文件内容。其中source可以有多个兄弟source,source下可以嵌套source,无限嵌套。用Schema文件怎么校验source节点。test.xsd
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/NewXMLSchema"
xmlns:tns="http://www.example.org/NewXMLSchema" elementFormDefault="qualified">
<element name="test">
<complexType>
<sequence>
        <element name="source">
                                      <!-- 这里怎么继续写,实现source标签的递归校验? -->
                                </element>
                        </sequence>
                </complexType>
         </element>
</schema>
重在参与,回复即给分!希望知道的朋友,不吝赐教!谢了!

解决方案 »

  1.   

    只会用Dom4j递归遍历的 表示压力很大
      

  2.   

    只会写DTD校验文件= =...
    帮你顶下...
      

  3.   

    <xs:complexType name="SourceType">
    <xs:sequence>
    <xs:element name="source" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
    <xs:element name="source" type="SourceType"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>

    <xs:element name="test">
    <xs:complexType>
    <xs:sequence maxOccurs="unbounded">
    <xs:element name="source" type="SourceType"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
      

  4.   

    <xs:complexType name="SourceType">
    <xs:sequence>
    <xs:element name="source" minOccurs="0" maxOccurs="unbounded">
    <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
    <xs:element name="source" type="SourceType"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    </xs:sequence>
    </xs:complexType>

    <xs:element name="test">
    <xs:complexType>
    <xs:sequence maxOccurs="unbounded">
    <xs:element name="source" type="SourceType"/>
    </xs:sequence>
    </xs:complexType>
    </xs:element>