2.【 xml Schema 】简单 元素

schema php 验证程序

<?php
    $dom = new DOMDocument;
    $dom->Load('demo.xml');
    if($dom->schemaValidate("book.xsd")){
    	echo "validate";
    }else{
    	echo "not validate";
    }

1. 简易元素

那些仅包含文本的元素 包括 XML Schema 定义中包括的类型中的一种(布尔、字符串、数据等等),或者它也可以是您自行定义的定制类型 boolean string data etc.
syntax : <xs:element name="xxx" type="yyy">

内建类型
  • xs:string
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:date
  • xs:time
  • xs:positiveInteger

DEMO

<lastname>Smith</lastname>
<age>28</age>
<dateborn>1980-03-27</dateborn>

变成

<xs:element name="lastname" type="xs:string">Smith</xs:element>
<xs:element name="age" type="xs:integer">28</xs:element>
<xs:element name="dateborn" type="xs:date">Smith</xs:element>

默认值 和固定值

<xs:element name="color" type="xs:string" default="red"/> 默认值 <xs:element name="color" type="xs:string" fixed="red"/> 固定值

2. 属性

简易元素无法拥有属性。假如某个元素拥有属性,它就会被当作某种复合类型。但是属性本身总是作为简易类型被声明的

syntax: <xs:attribute name="xxx" type="yyy"/>

xml

<lastname lang="EN">Smith</lastname>

xsd

<xs:attribute name="lang" type="xs:string"/>

也可以设置默认和固定值 type 可以对元素或者属性的内容进行限定 xs:date 的值不能使Hello World 也可以添加自己的限定条件 称之为facet 限定面

3.restriction 限定/Facet

  • 区间限制 minInclusive 最小值 maxInclusive 最大值
<xs:element name="age">

<xs:simpleType>
  <xs:restriction base="xs:integer">
    <xs:minInclusive value="0"/>
    <xs:maxInclusive value="120"/>
  </xs:restriction>
</xs:simpleType>

</xs:element>

涉及到的xs函数

xs:simpleType
xs:restriction
xs:maxInclusive // integer 最大
xs:minInclusive // integer 最小
xs:enumeration //枚举类型

也可以使用下面的格式写

  • enumeration 枚举
<xs:element name="car" type="clssType">
    <xs:simpleType name="clssType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="BWM"/>
            <xs:enumeratiion value="AUDI"/>
        </xs:restriction>
    </xs:simpleType>
</xs:element>

还支持pattern constraint (模式限制)

  • pattern 模式

下面可以接受一个a-z 之间的一个字符

<xs:element name="title">
      <xs:simpleType>
          <xs:restriction base="xs:string">
              <xs:patten value="[a-z]"/>
          </xs:restriction>
      </xs:simpleType>
</xs:element>

可以接受 ([a-z])* , ([a-z][A-Z])+ ,male|female ,[a-zA-Z0-9]{8} 这些都可以 正则嘛

  • whiteSpace 空白限定

<xs:whiteSpace value="perserve"/>
- perserve 保留空白 这意味着 XML 处理器不会移除任何空白字符 - replace 替换空白 这意味着 XML 处理器将移除所有空白字符(换行、回车、空格以及制表符 - collapse 这意味着 XML 处理器将移除所有空白字符(换行、回车、空格以及制表符会被替换为空格,开头和结尾的空格会被移除,而多个连续的空格会被缩减为一个单一的空格)

  • 长度限制 length、maxLength 以及 minLength

数据类型的限定

 

限定描述
enumeration 定义可接受值的一个列表
fractionDigits 定义所允许的最大的小数位数。必须大于等于0。
length 定义所允许的字符或者列表项目的精确数目。必须大于或等于0。
maxExclusive 定义数值的上限。所允许的值必须小于此值。
maxInclusive 定义数值的上限。所允许的值必须小于或等于此值。
maxLength 定义所允许的字符或者列表项目的最大数目。必须大于或等于0。
minExclusive 定义数值的下限。所允许的值必需大于此值。
minInclusive 定义数值的下限。所允许的值必需大于或等于此值。
minLength 定义所允许的字符或者列表项目的最小数目。必须大于或等于0。
pattern 定义可接受的字符的精确序列。
totalDigits 定义所允许的阿拉伯数字的精确位数。必须大于0。
whiteSpace 定义空白字符(换行、回车、空格以及制表符)的处理方式。
posted @ 2017-09-05 15:41  MartinDing  阅读(426)  评论(0编辑  收藏  举报