驗證xml格式

2021-10-16 22:21:16 字數 4293 閱讀 4989

可以使用dtd來定義xml文件的合法構建模組。dtd可以寫在文件內部,也可以另外寫乙個檔案

文件內部

<?xml version="1.0"?>

to(#pcdata)

>

from

(#pcdata)

>

body

(#pcdata)

>

]>

>

>

llto

>

>

zhfrom

>

>

hellobody

>

note

>

dtd包含在以上格式的宣告中

外部文件

如果dtd位於xml原始檔外部,應該封裝在乙個dtd文件中,並在xml中宣告

dtd結構

元素宣告的語法格式

元素內容說明的格式

#pcdata

關鍵字#pcdata說明元素包含字元資料,內容只能是字元資料

例:<?xml version="1.0"?>

]>

>

張三name

>

子元素

說明元素包含的是子元素。當乙個元素只包含子元素時而沒有字元資料時,表示此元素型別具有元素型型別。在該型別的元素宣告時,通過內容模型來指定在其內容上的約束(內容模型是決定子元素型別和子元素出現順序的一種簡單語法)

例:

<?xml version="1.0"?>

to(#pcdata)

>

from

(#pcdata)

>

body

(#pcdata)

>

]>

>

>

llto

>

>

zhfrom

>

>

hellobody

>

note

>

複雜一些的內容模型為

混合內容

既可以包含子元素,也可以包含字元資料(使用混合內容模型時,#pcdata關鍵字必須是模型中的第乙個選項,不能再模型中使用逗號、問號或加號。只能用豎線來分隔#pcdata和元素)

<?xml version="1.0"?>

body

(#pcdata)

>

]>

>

郵件 >

hellobody

>

email

>

empty

關鍵字empty表明該元素既不包含字元資料,也不包含子元素,是乙個空元素

例:

brempty

>

any

關鍵字any表明該元素可以包含任何字元資料和子元素

在dtd之後,w3c推出了新的規範來驗證xml格式:xml schema definition

schema語法格式

<?xml version="1.0"?>

// 簡易元素(僅包含文字的元素,不會包含子元素或屬性)

// 常用的type有xs:strig、xs:decimal、xs:integer、xs:boolean、xs:date、xs:time

<

xs:element

name

="to"

type

="xs:string"

/>

// 屬性 

// 常用的type有xs:strig、xs:decimal、xs:integer、xs:boolean、xs:date、xs:time

<

xs:attribute

name

="lang"

type

="xs:string"

/>

// 限定   用於xml元素或者屬性定義可接受的值

<

xs:restriction

base

="xs:integer"

>

<

xs:mininclusive

value

="0"

>

<

xs:maxinclusive

value

="120"

>

xs:restriction

>

// 復合元素

<

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

="body"

type

="xs:string"

/>

xs:sequence

>

xs:complextype

>

xs:element

>

schema的使用

同樣的,在xml中需要宣告schema

// 規定了預設的命名空間的宣告

// 定義了xml schema例項命名空間

xmlns:xsi="-instance"

// 包含兩個值 第乙個值是需要使用的命名空間 第二個值是供命名空間使用的xml schema的位置

C 使用xsd檔案驗證XML 格式是否正確

c 使用xsd檔案驗證xml 格式是否正確 核心示例 c 建立xmldocument xmldocument doc new xmldocument 建立宣告段 如 建立乙個根節點 kytresults xmlelement results doc.createelement kytresults ...

C 使用xsd檔案驗證XML 格式是否正確

建立xmldocument xmldocument doc new xmldocument 建立宣告段 如 建立乙個根節點 kytresults xmlelement results doc.createelement kytresults 建立 resultsstatus xmlnode resu...

xml 基本格式

123zhang 123 name dtd1.dtd 屬性名稱 型別 屬性特點 型別 屬性特點 型別 cdata ididref idrefs nmtoken nmtokens enumerated entity entitles notation notations 屬性特點 requirerd ...