1. 程式人生 > >xml中的DTD和schema

xml中的DTD和schema

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