<!-- 註釋 -->
一、文檔聲明:必須在文件開頭
1、<?xml version="1.0" encoding="gbk">
屬性:
(1)version: 版本號
(2)encoding: 編碼
(3)standalone: 是否需要依賴其他文件
2、<![CDATA[ 內容]]>:內容中出現的特殊符號不需要轉義
二、xml的約束
1、dtd約束 和 schema約束
2、dtd約束:
(1)<!ELEMENT 元素名 約束>
約束:
<1>如果有子元素,就寫子元素列表
(元素名1[+/?/*],元素名2...)
+: 一次或多次
?: 零次或一次
*: 任意次
','換成'|': 在列出元素中選擇一個
',': 表示元素必須按指定的順序出現
<2>沒有子元素,寫元素類型
(#PCDATA): 字符串類型
EMPTY:元素為空
ANY: 任意
(2)dtd定義元素屬性:
<!ATTLIST 元素名 屬性名 屬性類型 屬性約束>
<1>屬性類型:
CDATA: 普通文本字符串
ENUMERATED: 枚舉(枚舉值1|枚舉值2...)
ID: 取值不能重複
<2>屬性約束:
#REQUIRED: 必須出現
#IMPLIED: 可有可無
#FIXED: 固定值:#FIXED "固定值"
直接值:默認值
(3)定義運用實體:(寫在內部dtd裡,否則有些瀏覽器取不到值)
<!ENTITY 實體名 "實體內容">
在xml中引用: &實體名;
(4)xml文件中引入:
使用本地dtd文件: <!DOCTYPE 根元素名 SYSTEM "dtd文件路徑">
使用內部dtd: <!DOCTYPE 根元素名 [ dtd代碼 ]>
使用網絡的dtd: <!DOCTYPE 根元素名 PUBLIC "dtd名稱" "dtd文檔的url">
3、schema約束:
(1)特點:
符合xml的語法
一個xml中可以有多個schema,多個schema使用名稱空間區分(類似java的包)
schema中支持更多的數據類型
(2)<schema></schema>:最外層標籤
標籤寫法為:<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/1"
xmlns:tns="http://www.example.org/1"
elementFormDefault="qualified">
屬性:
xmlns: 默認使用的名稱空間
targetNamespace: 聲明該文檔中的元素屬於哪個命名空間
xmlns:tns: 該文檔使用的元素和數據類型來自哪個命名空間,同時來自這個命名空間的元素和數據類型應該使用前綴xsd:
elementFormDefault="qualified": 指出XML文檔使用在此schema中聲明過的元素必須被命名空間限定
(3)<element></element>: 定義元素
<1>若有子元素:
<element><complexType><元素指示器>子element元素</元素指示器></complexType></element>
元素指示器:
sequence: 表示元素是有順序的
all: 表示只能出現一次
Choice: 只能出現其中一個
設置屬性:(放在</complexType>前)
<attribute></attribute>
屬性:
name: 名稱
type: 類型
use: 是否必須有
<2>若無子元素:
<element></element>
屬性:
name: 數據名稱
type: 數據類型
maxOccurs: 表示出現次數,="unbounded"時無限制
<any></any>: 可以出現任意元素
4、xml文件中引入:
<根元素名 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.example.org/1"
xsi:schemaLocation="http://www.example.org/1 1.xsd">
屬性:
xmlns: 聲明默認約束來自哪個名稱空間
xsi:schemaLocation: 引入的名稱空間和哪個xsd文件對應,第一個為名稱空間, 第二個為xsd文件路徑.