simpleContent(简单内容)元素

content(内容)元素:
  是指在元素的开始标签和结束标签之间的内容,不包含属性。
注:元素的属性不是元素content(内容)的一部分。
例:
  <?xml version="1.0" ?>
  <books>
   <book id="001">
    <name>XML学习天下</name>
    <price>88.00</price>
    <author>李四</author>
   </book>
   <book id="002">
    <name>XML百例</name>
    <price>68.00</price>
    <author>张三</author>
   </book>
  </books>
说明:content(内容)元素包括<book>、<name>、<price>、<author>和元素的文本。

元素类型的分类关系图:
simpleContent(简单内容)元素

anyType(任意类型):
  不对元素的内容进行任何,当然也对元素的数据类型也不进行约束,anyType是每个元素的默认类型。
注:一旦某个元素被声明为任意类型,其属性和内容是不受任何约束的。
例:
Schema文档:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
   <xs:element name="book" type="xs:anyType"/>
  </xs:schema>
XML文档:
  <?xml version="1.0"?>
  <book xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="009.xsd">123.55</book>
说明:该元素的内容可以是字符型,也可以是数值型。



simpleType(简单类型):一般用来约束元素的值。

complexType(复杂类型):
  复杂元素按内容的复杂程度可以分为两类:simpleContent(简单内容)元素和complexContent(复杂内容)元素

simpleContent(简单内容)元素:
  是指元素内容中仅包含文本,不含子元素的复杂元素。
  判断一个复杂元素是否为simpleContent类型的标准,是看其内容是否只含有文本。
  定义simpleContent最主要的任务就是通过extension(扩展派生)声明属性。
  simpleContent元素它首先是一个复杂类型元素,声明一个元素为复杂类型需要用到关键字complexType。

格式:
  <xs:complexType>    /声明复杂类型
      <xs:simpleContent>    /声明简单内容元素
           <!--在这里放代码-->
       </xs:simpleContent>
  </xs:complexType>


类型派生:
restriction(约束派生):
  是指通过对基类型的值或内容进行限定,从而得到新的类型。
注:自定义简单类型即时为一个很好的约束派生的例子。
例:
XML文件:
  <?xml version="1.0"?>
  <medal>sliver</medal>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
   <xs:element name="medal">  /声明元素奖章
    <xs:simpleType>   /声明简单类型
     <xs:restriction base="xs:string">  /声明新类型是基于字符类型的约束
      <xs:enumeration value="gold"/>  /声明自定义枚举型——金牌
      <xs:enumeration value="sliver"/>    /银牌
      <xs:enumeration value="copper"/>    /铜牌
     </xs:restriction>
    </xs:simpleType>
   </xs:element>
  </xs:schema>
说明:
  在XML文档中,约束了元素的内容只能为只能gold、sliver、copper里其中的一个。

extension(扩展派生):
  是指通过对基类型的值或内容模型进行扩充,从而得到新的类型。
  一般情况下,用来声明属性。

属性声明格式:
  <xs:attribute name="属性名" type="属性类型" use="required | optional | prohibited" />
说明:
  可以在一个元素里声多明个属性,属性里也有默认值和固定值,和元素的设置方法不样,在这里就不多加叙述了。
  在同一个类型定义中不能定义多个同名属性,一个元素可以含有多个属性,多个属性之间对先后顺序并不敏感。
   
use:用来定义属性是否必须出现在文档中。
   required:代表该属性必须出现在XML文档中。
   optional:代表该属性可以出现,也可以不出现XML文档中。
   prohibited:代表该属性不可以出现在XML文档中。

simpleContent(简单内容)元素实例:
XML文件:
  <?xml version="1.0" ?>
  <book id="001" type="IT">XML学习天下</book>

Schema文件:
  <?xml version="1.0"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
   <xs:element name="book" >  /声明元素
    <xs:complexType>    /声明复杂类型
        <xs:simpleContent>    /声明简单内容元素
              <xs:extension base="xs:string">
       <xs:attribute name="id" type="xs:integer"/>
       <xs:attribute name="type" type="xs:string"/>
              </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
   </xs:element>
  </xs:schema>

你可能感兴趣的:(xml)