XML;
是什么?
Extensible Markup Languare 可擴展標(biāo)記型語言
為什么要有XML?
1.HTML的標(biāo)簽是固定的,不可以改變,也不可以進行一個···擴展
2.HTML語法松散
作用;
制作配置文件;如組件類。。。。。
存儲數(shù)據(jù);存儲少量的數(shù)據(jù)
◆◆◆注;XML不是HTML的升級版,因為應(yīng)用的領(lǐng)域不一樣。
?XML是描寫關(guān)系型的數(shù)據(jù)
?HTML是描述頁面的數(shù)據(jù)顯示效果
--------------------------------------------XML和HTML的區(qū)別--------------------------------------------------------------------
XML和HTML的區(qū)別;
A、HTML是將數(shù)據(jù)和顯示的效果混合在一起,描述了數(shù)據(jù)的顯示效果,
-----而且標(biāo)簽是固定,而且語法松散
B、XML是將數(shù)據(jù)和顯示的效果是分離的,只是描述了數(shù)據(jù)之間的關(guān)系和存儲的格式,
-----沒有描述數(shù)據(jù)的顯示效果,沒有一套具體的標(biāo)簽,只是一個規(guī)范。
? XML適用金融,科學(xué)等有關(guān)系型的領(lǐng)域
? XML的重點是;處理數(shù)據(jù),和數(shù)據(jù)結(jié)構(gòu)
◆注;引入外部CSS文件,對XML標(biāo)簽進行一個修飾,
<>xml-stylesheet tyep ="text/css" href = "">
--------------------------------------------XML的特點--------------------------------------------------------------------
XML特點;
1.語法嚴謹,區(qū)分大小寫
2.標(biāo)簽名可以是中文
3.文件后綴是.xml
4.換行也是算一個元素
5.可以自定義標(biāo)簽
6.id不可以以數(shù)字開頭
存儲數(shù)據(jù)的方式;
* XML 存儲關(guān)系型的數(shù)據(jù)
* properties 存儲key,value的數(shù)據(jù)
* 文本 ? 什么都可以存儲
* 數(shù)據(jù)庫
--------------------------------------------XML的語法--------------------------------------------------------------------
XML語法;
1.文檔聲明 Document
declaration;
?版本 ? ? ? ? ? ? 編碼集 ? ? ? ? ? 是否與其他文件關(guān)聯(lián)
? ?<?xml vaersion =
"1.0" encoding = "編碼集" standalone =
"no默認" ?>
2.元素 Element;
1.自定義標(biāo)簽;建議標(biāo)簽名全部小寫,保持與HTML的書寫習(xí)慣,
因為出現(xiàn)同名的大小寫不便于閱讀
2.成對出現(xiàn)
3.閉合標(biāo)簽和結(jié)束體標(biāo)簽
4.符合邏輯嵌套
3.屬性 Attribute;
1.屬性名小寫,屬性也是可以自定義的,
2.屬性值要使用"" 或 '',id不可以以數(shù)字開頭
3.多個屬性要使用 空格 隔開
4.可以將屬性作為一個子標(biāo)簽,因為XML用途不是用于顯示頁面的
4.注釋 Comment;
1.<!-- --> 和HTML一樣
2.注釋不可以嵌套
5.CDATA;
1.XML的轉(zhuǎn)義字符基本和HTML一致。
2.如果需要轉(zhuǎn)義的字符太多了則可以使CDATA
3.CDATA可以將一段字符串原樣的輸出
<![CDATA[字符串]]>
6.處理指令;
1.處理指令時告知解析引擎是要如何處理文檔的。
2.處理指令必須使用
<?xml-stylesheet type =
"text/css" href = "路徑">
◆注;
? ? 1.XML必須要有一個根節(jié)點
? ? 2.XML不會在頁面顯示
? ? 3.縮進寫法適合閱讀
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓XML—— 文件結(jié)構(gòu)↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆◆◆注; XML文檔必須要有一個根節(jié)點◆◆◆
XML文件結(jié)構(gòu);
Node
|--- Element
|--- Attr
|--- Comment
|--- Text
|--- Document
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓XML—— 解析技術(shù)↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
xml解析;
為什么要有?
因為XML主要是用于存儲數(shù)據(jù),做配置文件.......
那么XML的數(shù)據(jù)的···取出···可以通過解析技術(shù)可以實現(xiàn).....
而讀取XML文件;
1.IO ?---- 讀取出來的數(shù)據(jù)不是理想的數(shù)據(jù)。
2.DOM解析 ?----
DOM4J 是一個開源的解析技術(shù)
3.SAX解析 ?----
SAX 是SUN公司定義的,比較規(guī)范,SAX里面也是有使用了DOM4J的技術(shù)
解析技術(shù);
1.DOM4J ?是一個開源組織的
2.JAXP ? 是SUN公司定義的
|-- DOM
|-- SAX
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓DOM—— 解析技術(shù)↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
DOM解析;
特點;1.是一次性裝載這個文件到內(nèi)存中,不利于大文件存取操作,
? ? ?2.適合增刪改查,因為一次是整個文件加載,無需在到硬盤對文件中的內(nèi)容一個一個去查找
? ? ?3.在內(nèi)存中是一棵倒掛的樹
? ? ?4.DOM是解析XML的底層接口之一
? ? ?5.是W3C定義的
? ? ?6.DOM是一個規(guī)范,而DOM4J是一個實現(xiàn)了這個規(guī)范的解析技術(shù)
DOM4J;
1.是DOM解析的一個實現(xiàn)解析技術(shù)(如同實現(xiàn)類)
2.特點和DOM一樣,也是一棵倒立的樹型形狀。
3.不是W3C定義的,是一個開源團隊發(fā)布的
DOM4J;也是一個組件,而這個組件也是需要下載的,
-----------------------------------------------DOM4J獲取XML文件的方式--------------------------------------------------------------------
◆◆◆注;注意導(dǎo)包的路徑。
DOM4J獲取文件的三種方式;
1.通過解析器的方法傳入一個絕對路徑
a.創(chuàng)建解析器
★SAXReader sr = new SAXReader();
b.調(diào)用解析器的read方法獲取XML文檔,使用文檔對象接收
★ Document doc = sr.read("絕對路徑");
2.通過解析器的方法傳入一個相對路徑
a.創(chuàng)建解析器
★SAXReader sr = new SAXReader();
b.調(diào)用解析器的read()方法,獲取到XML文檔,使用文檔對象接收
★ Document doc = sr.read("相對路徑");
3.通過類的getResourceAsStream("/文件名")方法
a.通過運行時類的對象的getResourceAsStream()的方法
---獲取到這個XML文檔的流
★InputStream is = ?類名.class.getResourceStream("/文件名");
b.創(chuàng)建解析器
★SAXReader sr = new SAXReader();
c.調(diào)用解析器的read()方法傳入獲取到的XML文件流,使用文檔對象接收
★Document doc = sr.read(is);
------------------------------------------DOM4J獲取XML文件的元素方法--------------------------------------------------------------------
◆◆◆注;必須要先獲取到根節(jié)點,在根據(jù)根節(jié)點獲取到其他節(jié)點◆◆◆
DOM4J獲取元素方法;?--- 使用Element Object調(diào)用
1.getRootElement() 獲取到根節(jié)點
2.elements(寫/沒寫) ? ? ? ? ? 只能寫子標(biāo)簽,不可以寫孫標(biāo)簽
? 沒寫;獲取到所有的子標(biāo)簽標(biāo)簽 ?返回的是一個集合
? 寫了;獲取到指定標(biāo)簽名的所有標(biāo)簽
3.getName(); ? ?獲取到標(biāo)簽名
4.elementText() 獲取到標(biāo)簽的內(nèi)容
5.element() ? ? 獲取到指定標(biāo)簽
6.elementById() 獲取到指定的Id標(biāo)簽
7.elementIterator() 獲取到標(biāo)簽迭代器
8.getQName() ? 獲取到標(biāo)簽名
獲取屬性的方法;----使用Element Object調(diào)用
1.attributeValue() ?獲取到指定的屬性的值
2.attirbutes() ? ?獲取到所有的屬性
添加的方法;----使用Element Object 調(diào)用
1.addElement() 添加元素
2.addAttribute() 添加屬性
3.addCDATA() ?添加CDATA
4.addText() ?添加標(biāo)簽內(nèi)容
直接刪除元素方法;使用獲取到的元素對象,
? ◆ 調(diào)用detach()方法可以刪除這個元素和這個元素的所有子元素。
如;element.detach()
------------------------------------------DOM4J刷新文件--------------------------------------------------------------------
DOM4J刷新文件;
1.聲明文件內(nèi)容的寫入格式。
a.縮進格式;
OutputFormat of =OutputFormat.createPrettyPrint();
b.行內(nèi)格式;
OutputFormat of =OutputFormat.createCompactFormat();
2.創(chuàng)建寫入器
XMLWriter writer = newXMLWriter("FileStream_Path","OutputFormat_Obj");
3.調(diào)用寫入器的方法寫入重寫寫入文件
writer.write("Document_Obj");
◆注;
1.將獲取到的XML文檔對象的內(nèi)容轉(zhuǎn)換成一個字符串
String Document.asXML();
2.將字符串轉(zhuǎn)換成一個XML文檔對象
Document.DocumentHanper.parseText("String_Obj");
------------------------------------------DOM4J創(chuàng)建 --> 寫入過程--------------------------------------------------------------------
? ? ?◆◆◆注意導(dǎo)包◆◆◆
1.創(chuàng)建解析器對象;
SAXReader reader = new SAXReader()
2.調(diào)用解析器方法獲取到XML文檔;
Document doc =reader.read("String_Path");
3.獲取到根路徑;
Element doc.getRootElement();
? ? ---4.1;將獲取到的文檔對象轉(zhuǎn)換成字符串
String doc.asXML();
? ? ---4.2;將字符串解析成一個XML文檔對象
DocumentDocumnetHanper.parseText("String");
5.規(guī)定寫入XML文件的格式;
1.OutputFormat of =
OutputFormat.createPattryPrint(); --- 縮進格式
2.OutputFormat of =
OutputFormat.createCompactFormat(); --- 行內(nèi)格式
6.創(chuàng)建寫入器;
XMLWriter writer = new XMLWriter("FileStream_Path",OutputFormat);
7.調(diào)用寫入器的寫入XML文件的方法;
writer.wirte(Document);
8.關(guān)閉流;
writer.close();
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓Xpath—— 查詢表達式↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Xpath;
為什么要有?
在DOM4J中加載文件時,直接加載整個文件到內(nèi)存中的,不便于獲取某一個指定的節(jié)點。
什么是Xpath?
? ? 1、是一個查詢表達式語言,也是一個開源的語言
? ? 2、在DOM4J中融合了這個Xpath這個查詢表達式語言
? ? 3、這個語言也是一個組件來的,但是在DOM4J組件中已經(jīng)附帶了
dom4J --- lib --- jaxen-1.1-beta-6.jar
? 作用;
? 可以通過Xpath表達式快速定位到某一個XML文件的節(jié)點。
------------------------------------------Xpath—— 表達式符號--------------------------------------------------------------------
表達式符號;
? //x ? ?相對定位到某節(jié)點
? /x ? ? 絕對定位絕對定位到某一個節(jié)點
? /* ? ? 是所有節(jié)點
?[num] ? 第N個節(jié)點
?[@x] ?選中到某一個屬性
?normalize-span 去空格
?[text()] ?獲取到內(nèi)容
------------------------------------------Xpath—— 使用--------------------------------------------------------------------
Xpath的使用;
DOM4J的selectNodes("表達式"); 方法
DOM4J的selectSingleNode("表達式"); ?方法
Document .selectNodes() ------ ?是返回所有節(jié)點的集合
Document .selectSingleNode("表達式") ?----- 返回某一個具體的節(jié)點
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP —— 解析技術(shù)↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JAXP解析技術(shù);
是Sun公司開發(fā)的,是XML文檔解析技術(shù)的一個集合統(tǒng)稱。
包含;
DOM解析
一次性讀取整個文件到內(nèi)存中。
SAX解析
讀取一行,解析一行,處理一行。
這2項解析技術(shù)都是由SUN公司制定的,較規(guī)范
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP——SAX —— 解析技術(shù)↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
SAX解析技術(shù);
為什么要有?
1.DOM4J不適合大文件的讀取,因為一次性加載整個文件。
是什么?
1.Simple API For XML 簡單的解析XML文檔API,是由SUN公司定義的一個解析技術(shù),較規(guī)范。
2.也是融合了DOM4J的部分技術(shù)。
作用;
用于解析XML文檔的一個解析技術(shù)
特點;
一次讀取一行,解析一行,處理一行。
適合大文件的存取,不適合增刪改查。
◆注;由于是SUN公司開發(fā)的,而在Eclipse或MyEclipse中已經(jīng)有了組件。
◆◆◆◆◆注;SAX解析主要是用于查詢,一般都不使用寫入操作,因為一般的XML文件都不會太大
-----------------------------------------SAX獲取XML文件的方式--------------------------------------------------------------------
SAX獲取XML文件的方式;
? ? 只有 2 種,傳入的字符串是···絕對路徑···或···相對路徑···
-----------------------------------------SAX獲取XML文件的流程--------------------------------------------------------------------
SAX獲取XML文件的流程;
因為是SUN公司定義的所以也較規(guī)范,也定義了獲取XML文件的流程
? ? 1.獲取到解析器工廠對象
SAXParserFactory spf =SAXParserFactory.newInstance();
? ? 2.通過解析器工廠對象獲取到具體的解析器對象
SAXParser sp =spf.newSAXParser();
? ? 3.通過具體的解析器對象,獲取到讀取器
XMLReader reader =sp.getXMLReader()
? ? 4.通過調(diào)用讀取器的setContentHandler(obj)方法設(shè)置事件處理
reader.setContentHandler(obj);
? ? 5.調(diào)用讀取器的解析方法,解析XML文件
? ? reader.parse("絕對路徑/相對路徑");
◆注;具體的事件處理在繼承事件處理接口·下·的具體實現(xiàn)類,的類中定義
事件處理;
?在SAX中引入了一個事件處理的概念,是用于對文件的內(nèi)容進行的處理。
1.在調(diào)用解析文件parse()的方法,時會觸發(fā)事件處理方法中的對象的···主要三個方法···
2.而事件處理ContenHandler是一個接口,
如果實現(xiàn)這個了接口則需要實現(xiàn)這個接口的所有方法
所以可以實現(xiàn)這個接口的具體的實現(xiàn)類。
主要三個方法;
startElement(String uri, String localName,String qName,
? ? ?Attributes attributes)
? ? ? ----- 獲取到開始標(biāo)簽
characters(char[] ch, int start, int
length) ----- 獲取到標(biāo)簽內(nèi)容
endElement(String uri, String localName,String qName)
? ? ----- 獲取到結(jié)束標(biāo)簽
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP——DOM —— 解析技術(shù)↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JAXP-DOM解析技術(shù);
為什么要有?
1.在SUN公司定義了一個SAX解析,而這個解析的特點是,每次讀取一行,
而不便于增刪改。。。。。
2.而不用DOM4J,因為如果是使用SUN公司定義的標(biāo)準(zhǔn)較規(guī)范,
3.使得代碼便于閱讀,因為在閱讀是不必查看是使用什么技術(shù)。。。。。
4.在未來的開發(fā)中統(tǒng)一使用SUN公司的技術(shù),可以使得兼容性問題的風(fēng)險降低。。
是什么?
JAXP-DOM解析技術(shù)是由SUN公司開發(fā)的,里面融合了DOM4J的部分技術(shù)
作用;
可以用于解析XML文檔。
特點;
1.一次性加載整個XML文檔到內(nèi)存中。
2.不適合大的文檔存取,適合增刪改查
3.也是一個倒立的樹型結(jié)構(gòu)。
4.也是遵循DOM規(guī)范的。
------------------------------ JAXP——DOM —— 創(chuàng)建->獲?。兀停涛臋n流程-------------------------------------------------------------------
Jaxp-DOM創(chuàng)建流程;
1.獲取到Jaxp_DOM解析工廠對象
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
2.通過解析工廠對象獲取到具體的解析器對象
DomcumentBuilder db =dbf.newDocumentBuilder();
3.通過解析器的解析XML文檔的方法獲取到XML文檔
Document doc = db.parse("絕對路徑/相對路徑")
操作文檔元素的方法;
參考;Java_API ---> Document對象,中的方法
? 和DOM4J/SAX類似
◆◆◆注;不可以使用通過類名獲取到文件輸入流對象
? Node n =
doc.getElementsByTagName("節(jié)點名")[num];
-------------------------------- JAXP——DOM —— 創(chuàng)建->寫入XML文檔流程--------------------------------------------------------------------
JAXP-DOM創(chuàng)建-寫入;
?1.獲取到JAXP-DOM解析工廠接口對象
DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
?2.通過解析工廠的對象獲取到具體的解析器對象
DocumentBuilder bd =dbf.newDocumentBuilder();
?3.使用解析器對象的parse()方法,獲取到XML文檔的對象
? Document doc = bd.parse(絕對路徑/相對路徑);
?4.1.在JAXP-DOM的中加入了插入的insertBefore();的方法
? a.創(chuàng)建節(jié)點
? Element_Obj.createElement("結(jié)點名");
? b.獲取到參考節(jié)點
? c.獲取到某一個節(jié)點(父節(jié)點)
Element ele =doc.getDocumentElement();
? d.通過父節(jié)點插入某一個節(jié)點
? ele.insertBefore(插入的節(jié)點,參考節(jié)點);
5.創(chuàng)建寫入工廠對象 【transformer轉(zhuǎn)換模型】
TransformerFactory tff =TransformerFactory.newInstance();
6.通過工廠對象獲取到具體的寫入對象
Transformer tf = tff.newTransformer();
<------
7.調(diào)用寫入對象的write方法寫入
? ?▲--> tf.write(new
DOMSource("源文件路徑"),new StreamResult(new
FileOutputStream("目標(biāo)路徑")));
◆◆◆注;
1.new DOMSource() 是一個類,而這個類可以關(guān)聯(lián)要轉(zhuǎn)換的Document對象
2.new StreamResult() 是一個類,可以表示數(shù)據(jù)寫出的目的地。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓ XML—— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
XML約束;
為什么要有?
在XML文檔中的標(biāo)簽可以隨意定義,使得文檔不規(guī)范,
也避免用戶輸入有誤,提高用戶的體驗性。
如;在描述人職業(yè)的XML文檔中,用戶不小心寫錯了或有人故意破壞,寫了個動物標(biāo)簽。
什么是XML約束?
規(guī)定(規(guī)范)XML文檔的書寫格式。
作用;
使得文檔變得規(guī)范,便于閱讀,提高用戶的體驗性。
主流約束;
DTD
? ?是一個控制不是很精準(zhǔn)的一個約束技術(shù)
? ?文件后綴是.dtd
Scheme
? ?是一個控制精準(zhǔn)的一個約束技術(shù),逐步的取代DTD
? ?文件后綴是.xsd
◆◆◆注;叫是叫Scheme而在書寫scheme約束文檔時是寫schema
----因為Schema的意思更加具體。
? schema :模式,計劃
? scheme :計劃,策劃,體制
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓?。模裕摹?約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
DTD約束;
是什么?
Document Type Definition 文檔類型定義
作用;
用于規(guī)定(規(guī)范)一個XML文檔的書寫格式
特點;
對文檔的內(nèi)容控制不夠精準(zhǔn)是,如做不到內(nèi)容的控制等。
--------------------------------------------DTD文檔定義--------------------------------------------------------------------
DTD文檔定義;
1.常用的數(shù)據(jù)類型;
(#PCDATA) 可變長度的字符串
EMPTY ? 空類型?【一般用于定義閉合標(biāo)簽】
ANY 任意類型
2.常用的定義符號;
? 0或1
+ 1或N
* 0或N
() 必須出現(xiàn) 1次
3.常用的定義元素的關(guān)鍵字;
?ELEMENT ? 定義元素
?ATTLIST ? 定義元素的屬性
? ◆注;
?1.都是大寫
?2.一個標(biāo)簽名可以同時使用2個,
?因為;ELMENT是定義元素
? ? ? ?ATTLIST ? 是定義元素的屬性
4.定義屬性常用的關(guān)鍵字;
1.#REQUIRED 必須給這個標(biāo)簽定義該屬性
2.#IMPLIED ?這個屬性可寫可不寫
3.#Fixed ? ?給這個屬性定義一個固定值
--------------------------------------------DTD文檔引入方式--------------------------------------------------------------------
DTD文檔引入方式;
1.外部引入;
? ? ?<!DOCTYPE 根名 SYSTEM "文件名">
2.內(nèi)部定義;
? ?<!DOCTYPE 根名[
? <!ELEMENT 根名(子標(biāo)簽)>
? <!ELEMENT 子(#PCDATA)>
]>
3.外部引入;key ---value
? ?<!DOCTYPE 根名 PUBLIC "名稱空間【唯一】" ?"文件名">
--------------------------------------------DTD文檔定義--------------------------------------------------------------------
1.文件后綴是DTD
<!ELEMENT 書名 (作者+,價格?)>
<!ElEMENT 作者(#PCDATA)>
<!ATTLIST 作者titile CDATA #IMPLIED>
<!ELEMENT 價格(#PCDATA)>
2.DTD文件沒有注釋
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓?。樱悖瑁澹恚?—— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Scheme約束;
? 為什么要有?
? 1.DTD約束對XML的格式控制不夠精準(zhǔn)
? 2.使得用戶可選擇性更多,因為Scheme也比較麻煩
?是什么?
? Scheme;體制,策劃
?作用;
? 規(guī)范(規(guī)定)XML的文檔書寫格式
?為什么說Scheme控制更加精準(zhǔn)?
? 1.可選擇規(guī)定的內(nèi)容類型更多
? 2.內(nèi)容類型的控制
? 3.內(nèi)容的規(guī)定
?特點;
? 1.文件后綴是.xsd
? 2.scheme文件的也是屬于一個XML文件,因為聲明處與XML一樣
? 3.文件的根節(jié)點一定是【schema】
? ? ? ◆◆◆注;不要寫成scheme ,
? ? ? scheme 是策劃,計劃,體制
? ? ? schema 是 計劃,模式
--------------------------------------------Scheme文檔定義--------------------------------------------------------------------
Scheme文檔定義;
1.可以指定一個自定義名
2.xmlns 的W3C域名是固定的格式,不可以改變
? 3.targetNamespace 域名名稱空間可以自定義,但是是要求唯一的
? 4.elementFormDefault 是固定的格式
? 5.根標(biāo)簽一定要是 【schema】
常用關(guān)鍵字解析;
sequence 序列;
是指定約束XML文件定義節(jié)點時
按照一個什么順序進行一個定義
? complextype 復(fù)雜類型;
? ? ? 是在xsd文檔聲明這個節(jié)點下有子節(jié)點。
name;
是標(biāo)簽名
type;
是標(biāo)簽內(nèi)容類型
★注;type如果設(shè)置成數(shù)值型(double,decimal....)的,一般都是要顯示的賦值
常見的單詞
? Ocuurs 重視的意思
? decimal 小數(shù)
--------------------------------------------Scheme文檔開頭解析--------------------------------------------------------------------
xs是自定義的一個標(biāo)識符
名稱空間是一個key,保證唯一性用于約束XML文檔時,XML文檔找到這個文檔
<?xml version = "1.0" encoding
= "UTD-8"> ? ? ? ? ? ? ? ?
----- 指定文檔類型
<xs:schema xmlns:xs =
"http://www.w3.org/2001/XMLSchema" ?----- 固定的格式
? targetNamespace = "自定義" ? ? ? ? ? ? ? ?
? ? ----- 自定義域名,用于標(biāo)識,
? ?|====一般是域名,保證在網(wǎng)絡(luò)上的唯一性
? elementFormDefault =
"qualified" ? ? ? ? ? ? ? ----- 固定格式,qualified;合格
>?
----------------------------------XML文檔——引用 ——Scheme文檔--------------------------------------------------------------------
1.my ----- 是自定義的一個名字,可以用于在引入多個約束文件時,可以區(qū)分
2.xis ----- 是自定義的,也是可以用于在引入多個約束文件時區(qū)分,
3.xmlns:xis ="http://www.w3.org/2001/XMLSchema-instance"
----- 是固定格式
4.xis:schemaLacation ----- 引入一個本地的文件,通過使用名稱空間 + 文件名 指定key + value
<my:schema 【根名】xmlns:my = "scheme文檔的名稱空間值"
xmlns:xis ="http://www.w3.org/2001/XMLSchema-instance"
? ?xis:schemaLacation =
"scheme文檔名稱空間 文件名"
>?