XML基本解析

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文檔名稱空間 文件名"

>?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容