简单使用schema的指示器(XML入门16)

       在定义复合元素(complextype)时指示器也是常用的概念。指示器的作用就是为了控制元素的秩序和方式。

       举一个最简单的例子,就是我们用过的sequence指令,这个指令要求元素标记必须按顺序出现,不能随便改变次序。下面是我们举过的例子。

<?XML version=“1.0”encoding=“UTF-8”?>

<xs:schema  xmlns:xs=“http://www.w3.org/2001/xmlschema”

            targetNamespace=“http://www.w3.cschools.com”

            xmls=“http://www.w3cschools.com”

            elementFormDefault=“qualified”>

<xs:element  name="note">

 <xs:complexType>

<xs:sequence>

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

       这里sequence指令就是规定在<xs:sequence>   和</xs:sequence>指令之间所有元素标记不可以改变顺序。

        如果希望符合元素之中的元素可以随便调换位置,用all 指令。

       例如:

<xs:element name="note">

 <xs:complexType>

<xs:all>

<xs:element name="to" type="xs:string"/>

<xs:element name="from" type="xs:string"/>

<xs:element name="heading" type="xs:string"/>

<xs:element name="body" type="xs:string"/>

</xs:all>

</xs:complexType>

</xs:element>

</xs:schema>

      这个all指令,要求所有元素可以按任意顺序出现,但是每个元素必须至少出现一次。

       还有一个choice指令,表示非此即彼,两个元素不能同时出现。

       例如:

<xs:element  name="answer">

 <xs:complexType>

<xs:choice>

<xs:element name="right" type="xs:string"/>

<xs:element name="wrong" type="xs:string"/>

</xs:choice>

</xs:complexType>

</xs:element>

</xs:schema>

      这个例子,在编辑XML文档时,只能适用一个元素。不能两个都出现。

      还有一种指示器,可以规定元素出现次数,适用方法与上面的指示器不同,而是出现在具体的元素标记内。这两个指示器就是maxoccurs和minoccurs指令。

      例如:

<xs:element  name="answers">

 <xs:complexType>

<xs:sequence>

<xs:element name="right" type="xs:string" maxoccurs=“3”/>

<xs:element name="wrong" type="xs:string" minOccurs=“2”/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

       而maxoccurs表示正确答案最多重复3次;minoccurs表示错误答案最少2次。这两个指示器默认值都是1次。

        关于指示器先讲这么多,还有几个,容后再讲。

        北荒客

         2020.3.7

你可能感兴趣的:(简单使用schema的指示器(XML入门16))