麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > XML > 正文

XML學習筆記(五)Schema語法之簡單類型

2024-09-05 20:54:45
字體:
來源:轉載
供稿:網友

首先簡單的說一下,Schema中的簡單類型(SimpleType)有三種:SimpleElement(簡單元素)、Attribute(屬性)和Restrictions(約束)。下面逐一介紹這幾種類型。
 

一、XSD SimpleElement

所謂SimpleElement是指不包含任何其他元素和屬性,只包含Text(元素間的內容)的元素。這里Text指代的不單單是文本(string),準確地說應該是數據,可以是Schema內置的數據類型的數據,也可以是我們自己創建的數據類型的數據。

定義一個SimpleElement

<xs:element name="xxx" type="yyy">
在這里再次提醒語法,XML是大小寫敏感的,屬性的值要用雙引號括起來。“xxx”是我們要定義的Element的名稱。“yyy”是這個Element的數據類型。XML Schema預定義的內置數據類型有如下一些:
“xs:string ”、“xs:decimal”、“xs:integer”、“xs:boolean”、“xs:date”、“xs:time”。
看一個例子,以下是一些在XML中出現的SimpleElement
<lastname>Refsnes</lastname>
<age>36</age>
<dateborn>1970-03-27</dateborn>
那么在Schema中應該作如下定義,注意Element名稱和數據類型的對應。
<xs:element name="lastname" type="xs:string"/>
<xs:element name="age" type="xs:integer"/>
<xs:element name="dateborn" type="xs:date"/>

Element的默認值和固定值

默認值是當Elment中沒有指定一個值時默認提供的值,使用default屬性給出。
<xs:element name="color" type="xs:string" default="red"/>
 
固定值同樣是自動給出的,但是XML的用戶不能再為Element指定值,使用fixed屬性給出。
<xs:element name="color" type="xs:string" fixed="red"/>

 

二、XSD Attribute

所有的Attribute都是作為簡單類型的。一個SimpleElement是不能有屬性的。如果一個Element包含有Attriute我們就認為它看作是一個復雜類型(Complex Type)。雖然Attribute不會單獨的出現,但我們仍將它作為一種SimpleType在這里介紹

定義一個Attribute

<xs:attribute name="xxx" type="yyy"/>
“xxx”是Attribute的名稱。“yyy”是Attribute的數據類型。可以使用XML Schema定義的內置數據類型,如:“xs:string ”、“xs:decimal”、“xs:integer”、“xs:boolean”、“xs:date”、“xs:time”。
例如有如下一個Element,包含一個Attribute
<lastname lang="EN">Smith</lastname>
那么定義lang屬性的Schema語句應該如下:
<xs:attribute name="lang" type="xs:string"/>

Attribute的默認值和固定值

同樣可以使用default屬性和fixed屬性為Attrbute指定默認值和固定值。
默認值
<xs:attribute name="lang" type="xs:string" default="EN"/>
固定值
<xs:attribute name="lang" type="xs:string" fixed="EN"/>

可選和必需屬性

屬性默認是可選的(即可以不填)可以使用use屬性來指定屬性是必需的,如下:
<xs:attribute name="lang" type="xs:string" use="required"/>

三、XSD Restrictions(約束)

Restrictions是用來限制(或者說定義)Element或Attribute可接受值的。而對于Element的Restrictions通常又稱為Facets。
下面通過一些常見的約束例子來說明Restrictions的用法和語法。

數值型范圍限制

<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>
該約束定義age元素的值是整形而且值要在0到120之間。

枚舉限制

<xs:element name="car">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
這里約束了car的值是string,而且只能為“Audi”、“Golf”和“BMW”中的一個。
可以使用另一種寫法:
<xs:element name="car" type="carType"/>
<xs:simpleType name="carType">
<xs:restriction base="xs:string">
<xs:enumeration value="Audi"/>
<xs:enumeration value="Golf"/>
<xs:enumeration value="BMW"/>
</xs:restriction>
</xs:simpleType>
這種寫法的好處是,上面的Restriction不是定義在Element中的,可以被其他的Element很方便的調用。

使用正則表達式(RegularExpression)約束

<xs:element name="letter">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[a-z]"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
這里<xs:pattern>的value屬性的值是一個正則表達式正則表達式的語法則不再本文介紹的范圍。使用RegularExpression你可以規定任何格式的string約束。

空格字符(Whitespace Characters)約束

<xs:element name="address">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:whiteSpace value="preserve"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
以上例子對address中的所有空格字符進行保留。關鍵是value="preserve"。XML語法本來就是保留空格的。
當值為“replace”時
XML processer會用空間來代替所有的空格字符。
當值為“collapse”時
會將連續的空格合并成一個。

長度約束

<xs:element name="password">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:length value="8"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
以上例子限定了password元素的長度為8。當然也可以使用 <xs:minLength value="?"/>和<xs:maxLength value="?"/>來限定最長最短值。

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品av久久久久久久久久 | 黄色的视频免费观看 | 久久国产精品电影 | 日韩视频在线一区二区三区 | 久久综合九色综合久久久精品综合 | 午夜视频在线观看免费视频 | 久久蜜桃香蕉精品一区二区三区 | 国产欧美在线观看不卡一 | 成人短视频在线观看免费 | 在线成人www免费观看视频 | 被啪羞羞视频在线观看 | 国产精品自拍99 | 国产韩国精品一区二区三区久久 | 中文字幕在线亚洲 | 精品中文字幕在线播放 | 亚洲视屏在线观看 | 黄色香蕉视频 | 黄色1级视频 | 在线日韩亚洲 | 手机在线看片国产 | 国产精品久久久久国产精品三级 | 黄视频网站免费观看 | 男女无遮挡羞羞视频 | 99成人精品视频 | 一级免费黄视频 | 精品国产一区二区三区久久久蜜月 | 一级黄色毛片子 | 日本在线视频一区二区三区 | 国产精品福利一区 | 色妞妞视频 | 91av日韩| 中文在线免费观看 | 青久草视频| 欧美精品一级 | 精品国产一区二区三区成人影院 | 精品一区二区三区免费毛片爱 | 国产成人高清成人av片在线看 | 天天草天天干天天 | 黄色网址电影 | 欧美精品一区二区三区四区 | 九九视频在线观看6 |