Schema之簡單元素、複合元素和屬性
的三要素:簡單元素,複合元素和屬性:
1、簡單元素:只含有文字的XML元素。它不可以含有其他元素或屬性;
1.1、為複合元素新增簡單元素的兩種方式:直接新增方式如下:
1 |
< xs:element name = "Book" > |
2 |
< xs:complexType > |
3 |
< xs:sequence > |
4 |
< xs:element name = "title" type = "xs:string" ></ xs:element > |
5 |
</ xs:sequence > |
6 |
</ xs:complexType > |
7 |
</ xs:element > |
或者引用的方式:
1 |
< xs:element name = "Book" > |
2 |
< xs:complexType > |
3 |
< xs:sequence > |
4 |
< xs:element ref = "title" ></ xs:element > |
5 |
</ xs:sequence > |
6 |
</ xs:complexType > |
7 |
</ xs:element > |
1.2、為簡單元素設定預設值和固定值:
1 |
< xs:element name = "price" type = "xs:double" default = "22.22" ></ xs:element > |
2 |
< xs:element name = "press" type = "xs:string" fixed = "清華大學出版社" ></ xs:element > |
2、屬性:簡單的元素沒有屬性,當一個元素包含屬性時,則成為複合元素,
2.1、屬性的定義非常類似於簡單元素:
1 |
< xs:attribute name = "lang" type = "xs:string" ></ xs:attribute > |
2.2、為複合元素新增屬性的方式和新增簡單元素的方式類似:
1 |
< xs:attribute name = "lang" type = "xs:string" ></ xs:attribute > |
2 |
< xs:element name = "Book" > |
3 |
< xs:complexType > |
4 |
< xs:attribute ref = "lang" ></ xs:attribute > |
5 |
</ xs:complexType > |
6 |
</ xs:element > |
或者:
1 |
< xs:element name = "Book" > |
2 |
< xs:complexType > |
3 |
< xs:attribute name = "lang" type = "xs:string" ></ xs:attribute > |
4 |
</ xs:complexType > |
5 |
</ xs:element > |
2.3、同樣可以為屬性新增預設值或者固定值;
1 |
< xs:attribute name = "lang" type = "xs:string" default = "xie" ></ xs:attribute > |
2.4、任意屬性和必須屬性:必須屬性就是說在寫XML文件時,該屬性必須含有,不是可有可無的;通過use 屬性來指定:
1 |
< xs:element name = "Book" > |
2 |
< xs:complexType > |
3 |
< xs:attribute name = "lang" type = "xs:string" use = "required" ></ xs:attribute > |
4 |
</ xs:complexType > |
5 |
</ xs:element > |
3、複合元素:是含有其他元素和/或屬性的XML元素
複合元素分為四種:空元素、只含有其他元素、只含有文字、含有其他元素和文字;
3.1、空元素:
空元素的定義:
1
<
product
pid
=
"1345"
/>
如果使用方法二,幾個元素可以同時引用相同的複合型別;
01
方法一:
02
<
xs:element
name
=
"product"
>
03
<
xs:complexType
>
04
<
xs:attribute
name
=
"proid"
type
=
"xs:positiveInteger"
></
xs:attribute
>
05
</
xs:complexType
>
06
</
xs:element
>
07
方法二:
08
<
xs:element
name
=
"product"
type
=
"prodtype"
/>
09
<
xs:complexType
name
=
"prodtype"
>
10
<
xs:attribute
name
=
"prodid"
type
=
"xs:positiveInteger"
/>
11
</
xs:complexType
>
3.2、只含有其他元素的複合元素:
1
<
person
>
2
<
firstname
>John</
firstname
>
3
<
lastname
>Smith</
lastname
>
4
</
person
>
schema:
01 |
方法一: |
02 |
< xs:element name = "person" > |
03 |
< xs:complexType > |
04 |
< xs:sequence > |
05 |
< xs:element name = "firstname" type = "xs:string" /> |
06 |
< xs:element name = "lastname" type = "xs:string" /> |
07 |
</ xs:sequence > |
08 |
</ xs:complexType > |
09 |
</ xs:element > |
10 |
方法二: |
11 |
< xs:element name = "person" type = "persontype" /> |
12 |
< xs:complexType name = "persontype" > |
13 |
< xs:sequence > |
14 |
< xs:element name = "firstname" type = "xs:string" /> |
15 |
16 |
< xs:element name = "lastname" type = "xs:string" /> |
17 |
</ xs:sequence > |
18 |
</ xs:complexType > |
同樣如果使用方法二,幾個元素可以同時引用相同的複合型別;
3.3、只含有簡單文字或屬性的複合元素:
1 |
< shoesize country = "france" >35</ shoesize > |
這種型別只含有簡單內容(文字和屬性),因此我們在內容周圍新增一個simpleContent元素,當用到簡單內容時,你必須在simpleContent元素裡定義一個擴充套件或約束,就像這樣:
01 |
< xs:element name = "somename" > |
02 |
03 |
< xs:complexType > |
04 |
< xs:simpleContent > |
05 |
< xs:extension base = "basetype" > |
06 |
.... |
07 |
.... |
08 |
</ xs:extension > |
09 |
</ xs:simpleContent > |
10 |
</ xs:complexType > |
11 |
12 |
</ xs:element > |
13 |
OR |
14 |
< xs:element name = "somename" > |
15 |
< xs:complexType > |
16 |
< xs:simpleContent > |
17 |
< xs:restriction base = "basetype" > |
18 |
19 |
.... |
20 |
.... |
21 |
</ xs:restriction > |
22 |
</ xs:simpleContent > |
23 |
</ xs:complexType > |
24 |
</ xs:element > |
tips:用extension/restriction元素擴充套件或限制元素的基本簡單型別;
3.4、混合內容的元素:既含有文字又含有其他元素;
1 |
< letter > |
2 |
Dear
Mr.< name >John
Smith</ name >. |
3 |
Your
order < orderid >1032</ orderid > |
4 |
will
be shipped on < shipdate >2001-07-13</ shipdate > |
5 |
</ letter > |
schema:
01 |
< xs:element name = "letter" > |
02 |
< xs:complexType mixed = "true" > |
03 |
< xs:sequence > |
04 |
< xs:element name = "name" type = "xs:string" /> |
05 |
06 |
< xs:element name = "orderid" type = "xs:positiveInteger" /> |
07 |
< xs:element name = "shipdate" type = "xs:date" /> |
08 |
</ xs:sequence > |
09 |
10 |
</ xs:complexType > |
11 |
</ xs:element > |
上面為了使字元資料能出現在"letter"子元件之間,mixed屬性必須設定為"true"。<xs:sequence>標籤指出了已定義的元素(name, orderid 和shipdate)在"letter"元素裡必須以指定的順序出現;
相關文章
- 結合元素和屬性的定義分析Schema的幾種設計方案
- javascript操作html元素屬性簡單介紹JavaScriptHTML
- script元素屬性
- 表單元素的form屬性介紹ORM
- html元素,屬性修改HTML
- 表單元素同時寫id和name屬性的作用
- 元素 offset client scroll 相關屬性簡介client
- JavaScript複製dom元素簡單介紹JavaScript
- 表單元素的form屬性用法介紹ORM
- jQuery利用name屬性獲取表單元素jQuery
- name屬性是表單元素必須的
- HTML5表單新增元素與屬性HTML
- javascript學習之路之元素獲取和設定屬性JavaScript
- XSD 複合元素概述
- js通過元素的class屬性獲取元素JS
- 動態生成HTML元素併為元素追加屬性HTML
- 給行內元素加上絕對定位之後,元素屬性的變化
- HTML5表單新增元素與屬性 (續)HTML
- 設定和獲取元素固有屬性值
- jquery設定和獲取元素的屬性jQuery
- Zepto這樣操作元素屬性
- 行內元素屬性設定
- HTML——② HTML 元素、屬性詳解HTML
- jquery改變元素屬性值jQuery
- JavaScript 通過 type 屬性值獲取表單元素JavaScript
- 行內元素的padding和margin屬性padding
- jQuery建立一個元素同時設定元素的屬性jQuery
- jQuery點選元素獲取此元素的id屬性值jQuery
- Angular2入門系列(四)————ngModel和表單元素name屬性Angular
- img元素的object-fit屬性Object
- jQuery如何修改元素的屬性jQuery
- jquery通過name屬性匹配元素jQuery
- 通過clss屬性查詢元素
- XAML 屬性元素,標記擴充套件和註釋套件
- jQuery捕獲-獲取DOM元素內容和屬性jQuery
- javascript實現的設定和獲取元素屬性JavaScript
- <svg>元素簡單介紹SVG
- 9.移除元素(簡單)