xml中的DTD和schema
阿新 • • 發佈:2017-05-30
stun 轉義 是否 xml語法 target san int log 概述 XML的文檔聲明<?xml version="1.0" encoding="UTF-8" ?>
xml轉義字符
<![CDATA[內容]]>
實例:
<![CDATA[
<student stuno=‘s01‘>
<name>張三</name>
<age>23</age>
<sex>男<</sex>
</student>
]]>
XML的約束文檔DTD和Schem
DTD的元素定義
1.定義元素的語法:<!ELEMENT 元素名 內容類型或內容>
①內容類型:EMPTY 定義空元素 ANY元素內容是任意的
②元素的內容:
元素的內容可以是文本數據,可以是子元素
<!ELEMENT name (#PCDATA)>表示name元素的內容為文本 <name>zansan</name>
<!ELEMENT student (name, age, gender)> 表示student元素的內容為子元素
③子元素出現的次數:
可以使用 “?” “+” “*”來指定子元素出現的次數
<!ELEMENT students (student?)> ?表示students元素可以有0-1個student元素
<!ELEMENT students (student*)> * 表示students元素①可以有0-n個student子元素
<!ELEMENT students (student+)> + 表示students元素可以有1-n個student子元素
④多個子元素:
<!ELEMENT student (name, age, gender)>表示必須有三個子元素,並且者三個子元素 出現順序要與申明順序保持一致
⑤枚舉子元素:
<!ELEMENT student (name|age|gender)>表示只要一個子元素,可以是name,age,sex中 任意一個。
2.元素屬性的語法:
<!ATTLIST 元素名
屬性名1 屬性類型 屬性說明
屬性名2 屬性類型 屬性說明...>
常見的屬性類型:CDATA 表示文本類型 ;ID 屬性值是唯一的
常見的設置說明:#REQUIRED 表示屬性是必須的
#IMPLIED 表示屬性可選的
Schema概述
? DTD的局限性
DTD不遵循XML語法
DTD數據類型有限
DTD不可擴展
DTD不支持命名空間(命名沖突)
? Schema的新的特性
Schema基於xml語法
Schema可以用能處理xml文檔的工具處理
Schema大大擴充了數據類型,可以自定義數據類型
Schema支持屬性組
Schema約束的元素
Schema元素 (只要是schema約束,都以schema元素作為根節點)
作用:包含已經定義的schema
用法;<xs:schema> xs就是命名空間的別名,可以自定義,我們都用默認的
屬性:xmlns 約束當前xml的命名空間
targetNamespace
Element元素
聲明一個元素
<
屬性:
name :元素的名稱 type :屬性的類型 ref:引用已定義的元素
maxoccurs 最多出現的次數 minoccurs 最少出現的次數
Attribute屬性
作用:聲明一個屬性
<xs:attribute name="stuno" type="xs:int" use="optional"></xs:attribute>
Name:屬性名 type:屬性類型 use是否是必填 ref 外部屬性的引用
complexType 元素定義復雜類型
<xs:element name="student"> <xs:complexType> <xs:sequence> <xs:element name="name" type="xs:string"/> <xs:element name="gender" type="xs:string"/> </xs:sequence> <xs:attributeGroup ref="stuattr"/> </xs:complexType> </xs:element> <xs:attributeGroup name="stuattr"> <xs:attribute name="stuno" type="scorest" use="required"/> </xs:attributeGroup> <!-- 0-100的數值約束--> <xs:simpleType name="scorest"> <xs:restriction base="xs:int"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType>
xml中的DTD和schema