T之家3月13日消息 Notepad ++是一款經典的開源文本、代碼編輯器,并且可以替代系統自帶的記事本的功能,同時也支持各類流行的計算機編程語言。目前,這款產品的UWP版本已經在Windows應用商店上架。
官方表示,UWP版的首個版本為桌面紀念版,第一個版本號就是7.5.5.0,能夠提供桌面版的完整功能。
編輯器可以運行在微軟的windows系統環境下,它的使用是受GPL許可證保護的,支持的語言:C、C++、Java、C#、XML、HTML、PHP、Javascript。
下載地址:點此訪問
想看到更多這類內容?去APP商店搜IT之家,天天都有小歡喜。
習《Python Cookbook》第三版
將 HTML 或者 XML 實體如 &entity; 或 code; 替換為對應的文本。再者,你需要轉換文本中特定的字符 (比如<, >, 或 &)。
如果你想替換文本字符串中的 ‘<’ 或者 ‘>’ ,使用 html.escape() 函數可以很容易的完成。比如:
import html
my_str='Elements are written as "<tag>text</tag>".'
print(my_str) # Elements are written as "<tag>text</tag>".
print(html.escape(my_str)) # Elements are written as "<tag>text</tag>".
print(html.escape(my_str, quote=False)) # Elements are written as "<tag>text</tag>".
對于escape()方法的官方解釋:
html.escape(s, quote=True)
Convert the characters &, < and > in string s to HTML-safe sequences. Use this if you need to display text that might contain such characters in HTML. If the optional flag quote is true, the characters (") and (') are also translated; this helps for inclusion in an HTML attribute value delimited by quotes, as in <a href="...">.
將字符串s中的字符&,<和>轉換為HTML安全序列。 如果您需要在HTML中顯示可能包含此類字符的文本,請使用此選項。 如果可選的標記quote為true,則還會翻譯字符(“)和(');這有助于包含在用引號分隔的HTML屬性值中,如<a href="...">中所示。
如果你正在處理的是 ASCII 文本,并且想將非 ASCII 文本對應的編碼實體嵌入進去,可以給某些 I/O 函數傳遞參數 errors='xmlcharrefreplace' 來達到這個目。比如:
my_str='Spicy Jalape?o'
print(my_str.encode('ascii', errors='xmlcharrefreplace')) # b'Spicy Jalape?o'
其中,xmlcharrefreplace的作用是:將非ascii字符替換為xml合適字符引用
字符引用通過其通用字符集/ Unicode代碼點引用字符,并使用以下格式:
nnnn; 或者 hhhh;
上邊的例子非ascii碼字符?,被替換為ñ;
更多的XML字符引用,可以查看WIKI網址:
https://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
為了替換文本中的編碼實體,你需要使用另外一種方法。如果你正在處理 HTML或者 XML 文本,試著先使用一個合適的 HTML 或者 XML 解析器。通常情況下,這些工具會自動替換這些編碼值,你無需擔心。
有時候,如果你接收到了一些含有編碼值的原始文本,需要手動去做替換,通常你只需要使用 HTML 或者 XML 解析器的一些相關工具函數/方法即可。比如:
my_str_special='This is a special character "<è>"'
print(html.unescape(my_str_special)) # This is a special character "<è>"
from xml.sax.saxutils import unescape
my_str_special_1='The prompt is >>>'
print(unescape(my_str_special_1)) # The prompt is >>>
在生成 HTML 或者 XML 文本的時候,如果正確的轉換特殊標記字符是一個很容易被忽視的細節。特別是當你使用 print() 函數或者其他字符串格式化來產生輸出的時候。使用像 html.escape() 的工具函數可以很容易的解決這類問題。
如果你想以其他方式處理文本,還有一些其他的工具函數比如xml.sax.saxutils.unescapge() 可以幫助你。然而,你應該先調研清楚怎樣使用一個合適的解析器。比如,如果你在處理 HTML 或 XML 文本,使用某個解析模塊比如html.parse 或 xml.etree.ElementTree 已經幫你自動處理了相關的替換細節。
ML;
是什么?
Extensible Markup Languare 可擴展標記型語言
為什么要有XML?
1.HTML的標簽是固定的,不可以改變,也不可以進行一個···擴展
2.HTML語法松散
作用;
制作配置文件;如組件類。。。。。
存儲數據;存儲少量的數據
◆◆◆注;XML不是HTML的升級版,因為應用的領域不一樣。
XML是描寫關系型的數據
HTML是描述頁面的數據顯示效果
--------------------------------------------XML和HTML的區別--------------------------------------------------------------------
XML和HTML的區別;
A、HTML是將數據和顯示的效果混合在一起,描述了數據的顯示效果,
-----而且標簽是固定,而且語法松散
B、XML是將數據和顯示的效果是分離的,只是描述了數據之間的關系和存儲的格式,
-----沒有描述數據的顯示效果,沒有一套具體的標簽,只是一個規范。
XML適用金融,科學等有關系型的領域
XML的重點是;處理數據,和數據結構
◆注;引入外部CSS文件,對XML標簽進行一個修飾,
<>xml-stylesheet tyep="text/css" href="">
--------------------------------------------XML的特點--------------------------------------------------------------------
XML特點;
1.語法嚴謹,區分大小寫
2.標簽名可以是中文
3.文件后綴是 .xml
4.換行也是算一個元素
5.可以自定義標簽
6.id不可以以數字開頭
存儲數據的方式;
* XML 存儲關系型的數據
* properties 存儲key,value的數據
* 文本 什么都可以存儲
* 數據庫
--------------------------------------------XML的語法--------------------------------------------------------------------
XML語法;
1.文檔聲明 Document declaration;
版本 編碼集 是否與其他文件關聯
<?xml vaersion="1.0" encoding="編碼集" standalone="no默認" ?>
2.元素 Element;
1.自定義標簽;建議標簽名全部小寫,保持與HTML的書寫習慣,
因為出現同名的大小寫不便于閱讀
2.成對出現
3.閉合標簽和結束體標簽
4.符合邏輯嵌套
3.屬性 Attribute;
1.屬性名小寫,屬性也是可以自定義的,
2.屬性值要使用 "" 或 '',id不可以以數字開頭
3.多個屬性要使用 空格 隔開
4.可以將屬性作為一個子標簽,因為XML用途不是用于顯示頁面的
4.注釋 Comment;
1.<!-- --> 和HTML一樣
2.注釋不可以嵌套
5.CDATA;
1.XML的轉義字符基本和HTML一致。
2.如果需要轉義的字符太多了則可以使 CDATA
3.CDATA可以將一段字符串原樣的輸出
<![CDATA[字符串]]>
6.處理指令;
1.處理指令時告知解析引擎是要如何處理文檔的。
2.處理指令必須使用 <? ?>
<?xml-stylesheet type="text/css" href="路徑">
◆注;
1.XML必須要有一個根節點
2.XML不會在頁面顯示
3.縮進寫法適合閱讀
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓XML—— 文件結構↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
◆◆◆注; XML文檔必須要有一個根節點◆◆◆
XML文件結構;
Node
|--- Element
|--- Attr
|--- Comment
|--- Text
|--- Document
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓XML—— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
xml解析;
為什么要有?
因為XML主要是用于存儲數據,做配置文件.......
那么XML的數據的···取出···可以通過解析技術可以實現.....
而讀取XML文件;
1.IO ---- 讀取出來的數據不是理想的數據。
2.DOM解析 ---- DOM4J 是一個開源的解析技術
3.SAX解析 ---- SAX 是SUN公司定義的,比較規范,SAX里面也是有使用了DOM4J的技術
解析技術;
1.DOM4J 是一個開源組織的
2.JAXP 是SUN公司定義的
|-- DOM
|-- SAX
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓DOM—— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
DOM解析;
特點;1.是一次性裝載這個文件到內存中,不利于大文件存取操作,
2.適合增刪改查,因為一次是整個文件加載,無需在到硬盤對文件中的內容一個一個去查找
3.在內存中是一棵倒掛的樹
4.DOM是解析XML的底層接口之一
5.是W3C定義的
6.DOM是一個規范,而DOM4J是一個實現了這個規范的解析技術
DOM4J;
1.是DOM解析的一個實現解析技術(如同實現類)
2.特點和DOM一樣,也是一棵倒立的樹型形狀。
3.不是W3C定義的,是一個開源團隊發布的
DOM4J;也是一個組件,而這個組件也是需要下載的,
-----------------------------------------------DOM4J獲取XML文件的方式--------------------------------------------------------------------
◆◆◆注;注意導包的路徑。
DOM4J獲取文件的三種方式;
1.通過解析器的方法傳入一個絕對路徑
a.創建解析器
★ SAXReader sr=new SAXReader();
b.調用解析器的read方法獲取XML文檔,使用文檔對象接收
★ Document doc=sr.read("絕對路徑");
2.通過解析器的方法傳入一個相對路徑
a.創建解析器
★ SAXReader sr=new SAXReader();
b.調用解析器的read()方法,獲取到XML文檔,使用文檔對象接收
★ Document doc=sr.read("相對路徑");
3.通過類的getResourceAsStream("/文件名")方法
a.通過運行時類的對象的getResourceAsStream()的方法
---獲取到這個XML文檔的流
★InputStream is=類名.class.getResourceStream("/文件名");
b.創建解析器
★ SAXReader sr=new SAXReader();
c.調用解析器的read()方法傳入獲取到的XML文件流,使用文檔對象接收
★ Document doc=sr.read(is);
------------------------------------------DOM4J獲取XML文件的元素方法--------------------------------------------------------------------
◆◆◆注;必須要先獲取到根節點,在根據根節點獲取到其他節點 ◆◆◆
DOM4J獲取元素方法; --- 使用Element Object調用
1.getRootElement() 獲取到根節點
2.elements(寫/沒寫) 只能寫子標簽,不可以寫孫標簽
沒寫;獲取到所有的子標簽標簽 返回的是一個集合
寫了;獲取到指定標簽名的所有標簽
3.getName(); 獲取到標簽名
4.elementText() 獲取到標簽的內容
5.element() 獲取到指定標簽
6.elementById() 獲取到指定的Id標簽
7.elementIterator() 獲取到標簽迭代器
8.getQName() 獲取到標簽名
獲取屬性的方法;----使用 Element Object調用
1.attributeValue() 獲取到指定的屬性的值
2.attirbutes() 獲取到所有的屬性
添加的方法;----使用 Element Object 調用
1.addElement() 添加元素
2.addAttribute() 添加屬性
3.addCDATA() 添加CDATA
4.addText() 添加標簽內容
直接刪除元素方法;使用獲取到的元素對象,
◆ 調用detach()方法可以刪除這個元素和這個元素的所有子元素。
如;element.detach()
------------------------------------------DOM4J刷新文件--------------------------------------------------------------------
DOM4J刷新文件;
1.聲明文件內容的寫入格式。
a.縮進格式;
OutputFormat of=OutputFormat.createPrettyPrint();
b.行內格式;
OutputFormat of=OutputFormat.createCompactFormat();
2.創建寫入器
XMLWriter writer=new XMLWriter("FileStream_Path","OutputFormat_Obj");
3.調用寫入器的方法寫入重寫寫入文件
writer.write("Document_Obj");
◆注;
1.將獲取到的XML文檔對象的內容轉換成一個字符串
String Document.asXML();
2.將字符串轉換成一個XML文檔對象
Document.DocumentHanper.parseText("String_Obj");
------------------------------------------DOM4J創建 --> 寫入過程--------------------------------------------------------------------
◆◆◆注意導包◆◆◆
1.創建解析器對象;
SAXReader reader=new SAXReader()
2.調用解析器方法獲取到XML文檔;
Document doc=reader.read("String_Path");
3.獲取到根路徑;
Element doc.getRootElement();
---4.1;將獲取到的文檔對象轉換成字符串
String doc.asXML();
---4.2;將字符串解析成一個XML文檔對象
Document DocumnetHanper.parseText("String");
5.規定寫入XML文件的格式;
1.OutputFormat of=OutputFormat.createPattryPrint(); --- 縮進格式
2.OutputFormat of=OutputFormat.createCompactFormat(); --- 行內格式
6.創建寫入器;
XMLWriter writer=new XMLWriter("FileStream_Path",OutputFormat);
7.調用寫入器的寫入XML文件的方法;
writer.wirte(Document);
8.關閉流;
writer.close();
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓Xpath—— 查詢表達式↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Xpath;
為什么要有?
在DOM4J中加載文件時,直接加載整個文件到內存中的,不便于獲取某一個指定的節點。
什么是Xpath?
1、是一個查詢表達式語言,也是一個開源的語言
2、在DOM4J中融合了這個Xpath這個查詢表達式語言
3、這個語言也是一個組件來的,但是在DOM4J組件中已經附帶了
dom4J --- lib --- jaxen-1.1-beta-6.jar
作用;
可以通過Xpath表達式快速定位到某一個XML文件的節點。
------------------------------------------Xpath—— 表達式符號 --------------------------------------------------------------------
表達式符號;
//x 相對定位到某節點
/x 絕對定位絕對定位到某一個節點
/* 是所有節點
[num] 第N個節點
[@x] 選中到某一個屬性
normalize-span 去空格
[text()] 獲取到內容
------------------------------------------Xpath—— 使用 --------------------------------------------------------------------
Xpath的使用;
DOM4J的selectNodes("表達式"); 方法
DOM4J的selectSingleNode("表達式"); 方法
Document .selectNodes() ------ 是返回所有節點的集合
Document .selectSingleNode("表達式") ----- 返回某一個具體的節點
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP —— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JAXP解析技術;
是Sun公司開發的,是XML文檔解析技術的一個集合統稱。
包含;
DOM解析
一次性讀取整個文件到內存中。
SAX解析
讀取一行,解析一行,處理一行。
這2項解析技術都是由SUN公司制定的,較規范
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP——SAX —— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
SAX解析技術;
為什么要有?
1.DOM4J不適合大文件的讀取,因為一次性加載整個文件。
是什么?
1.Simple API For XML 簡單的解析XML文檔API,是由SUN公司定義的一個解析技術,較規范。
2.也是融合了DOM4J的部分技術。
作用;
用于解析XML文檔的一個解析技術
特點;
一次讀取一行,解析一行,處理一行。
適合大文件的存取,不適合增刪改查。
◆注;由于是SUN公司開發的,而在Eclipse或MyEclipse中已經有了組件。
◆◆◆◆◆注;SAX解析主要是用于查詢,一般都不使用寫入操作,因為一般的XML文件都不會太大
-----------------------------------------SAX獲取XML文件的方式--------------------------------------------------------------------
SAX獲取XML文件的方式;
只有 2 種,傳入的字符串是···絕對路徑···或···相對路徑···
-----------------------------------------SAX獲取XML文件的流程 --------------------------------------------------------------------
SAX獲取XML文件的流程;
因為是SUN公司定義的所以也較規范,也定義了獲取XML文件的流程
1.獲取到解析器工廠對象
SAXParserFactory spf=SAXParserFactory.newInstance();
2.通過解析器工廠對象獲取到具體的解析器對象
SAXParser sp=spf.newSAXParser();
3.通過具體的解析器對象,獲取到讀取器
XMLReader reader=sp.getXMLReader()
4.通過調用讀取器的setContentHandler(obj)方法設置事件處理
reader.setContentHandler(obj);
5.調用讀取器的解析方法,解析XML文件
reader.parse("絕對路徑/相對路徑");
◆注;具體的事件處理在繼承事件處理接口·下·的具體實現類,的類中定義
事件處理;
在SAX中引入了一個事件處理的概念,是用于對文件的內容進行的處理。
1.在調用解析文件parse()的方法,時會觸發事件處理方法中的對象的···主要三個方法···
2.而事件處理ContenHandler是一個接口,
如果實現這個了接口則需要實現這個接口的所有方法
所以可以實現這個接口的具體的實現類。
主要三個方法;
startElement(String uri, String localName, String qName,
Attributes attributes) ----- 獲取到開始標簽
characters(char[] ch, int start, int length) ----- 獲取到標簽內容
endElement(String uri, String localName, String qName)
----- 獲取到結束標簽
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓JAXP——DOM —— 解析技術↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
JAXP-DOM解析技術;
為什么要有?
1.在SUN公司定義了一個SAX解析,而這個解析的特點是,每次讀取一行,
而不便于增刪改。。。。。
2.而不用DOM4J,因為如果是使用SUN公司定義的標準較規范,
3.使得代碼便于閱讀,因為在閱讀是不必查看是使用什么技術。。。。。
4.在未來的開發中統一使用SUN公司的技術,可以使得兼容性問題的風險降低。。
是什么?
JAXP-DOM解析技術是由SUN公司開發的,里面融合了DOM4J的部分技術
作用;
可以用于解析XML文檔。
特點;
1.一次性加載整個XML文檔到內存中。
2.不適合大的文檔存取,適合增刪改查
3.也是一個倒立的樹型結構。
4.也是遵循DOM規范的。
------------------------------ JAXP——DOM —— 創建->獲取XML文檔流程 -------------------------------------------------------------------
Jaxp-DOM創建流程;
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("節點名")[num];
-------------------------------- JAXP——DOM —— 創建->寫入XML文檔流程 --------------------------------------------------------------------
JAXP-DOM創建-寫入;
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.創建節點
Element_Obj.createElement("結點名");
b.獲取到參考節點
c.獲取到某一個節點(父節點)
Element ele=doc.getDocumentElement();
d.通過父節點插入某一個節點
ele.insertBefore(插入的節點,參考節點);
5.創建寫入工廠對象 【transformer 轉換模型】
TransformerFactory tff=TransformerFactory.newInstance();
6.通過工廠對象獲取到具體的寫入對象
Transformer tf=tff.newTransformer();
<------
7.調用寫入對象的write方法寫入
▲--> tf.write(new DOMSource("源文件路徑"),new StreamResult(new FileOutputStream("目標路徑")));
◆◆◆注;
1.new DOMSource() 是一個類,而這個類可以關聯要轉換的Document對象
2.new StreamResult() 是一個類,可以表示數據寫出的目的地。
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓ XML —— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
XML約束;
為什么要有?
在XML文檔中的標簽可以隨意定義,使得文檔不規范,
也避免用戶輸入有誤,提高用戶的體驗性。
如;在描述人職業的XML文檔中,用戶不小心寫錯了或有人故意破壞,寫了個動物標簽。
什么是XML約束?
規定(規范)XML文檔的書寫格式。
作用;
使得文檔變得規范,便于閱讀,提高用戶的體驗性。
主流約束;
DTD
是一個控制不是很精準的一個約束技術
文件后綴是 .dtd
Scheme
是一個控制精準的一個約束技術,逐步的取代DTD
文件后綴是 .xsd
◆◆◆注;叫是叫Scheme而在書寫scheme約束文檔時是寫schema
----因為Schema的意思更加具體。
schema :模式,計劃
scheme :計劃,策劃,體制
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓ DTD —— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
DTD約束;
是什么?
Document Type Definition 文檔類型定義
作用;
用于規定(規范)一個XML文檔的書寫格式
特點;
對文檔的內容控制不夠精準是,如做不到內容的控制等。
--------------------------------------------DTD文檔定義 --------------------------------------------------------------------
DTD文檔定義;
1.常用的數據類型;
(#PCDATA) 可變長度的字符串
EMPTY 空類型 【一般用于定義閉合標簽】
ANY 任意類型
2.常用的定義符號;
? 0或1
+ 1或N
* 0或N
() 必須出現 1次
3.常用的定義元素的關鍵字;
ELEMENT 定義元素
ATTLIST 定義元素的屬性
◆注;
1.都是大寫
2.一個標簽名可以同時使用2個,
因為;ELMENT是定義元素
ATTLIST 是定義元素的屬性
4.定義屬性常用的關鍵字;
1.#REQUIRED 必須給這個標簽定義該屬性
2.#IMPLIED 這個屬性可寫可不寫
3.#Fixed 給這個屬性定義一個固定值
--------------------------------------------DTD文檔引入方式 --------------------------------------------------------------------
DTD文檔引入方式;
1.外部引入;
<!DOCTYPE 根名 SYSTEM "文件名">
2.內部定義;
<!DOCTYPE 根名[
<!ELEMENT 根名(子標簽)>
<!ELEMENT 子 (#PCDATA)>
]>
3.外部引入;key --- value
<!DOCTYPE 根名 PUBLIC "名稱空間【唯一】" "文件名">
--------------------------------------------DTD文檔定義 --------------------------------------------------------------------
1.文件后綴是DTD
<!ELEMENT 書名 (作者+,價格?)>
<!ElEMENT 作者 (#PCDATA)>
<!ATTLIST 作者 titile CDATA #IMPLIED>
<!ELEMENT 價格 (#PCDATA)>
2.DTD文件沒有注釋
■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■↓↓↓↓↓↓ Scheme —— 約束↓↓↓↓↓↓↓↓■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
Scheme約束;
為什么要有?
1.DTD約束對XML的格式控制不夠精準
2.使得用戶可選擇性更多,因為Scheme也比較麻煩
是什么?
Scheme;體制,策劃
作用;
規范(規定)XML的文檔書寫格式
為什么說Scheme控制更加精準?
1.可選擇規定的內容類型更多
2.內容類型的控制
3.內容的規定
特點;
1.文件后綴是.xsd
2.scheme文件的也是屬于一個XML文件,因為聲明處與XML一樣
3.文件的根節點一定是【schema】
◆◆◆注;不要寫成scheme ,
scheme 是策劃,計劃,體制
schema 是 計劃,模式
--------------------------------------------Scheme文檔定義 --------------------------------------------------------------------
Scheme文檔定義;
1.可以指定一個自定義名
2.xmlns 的W3C域名是固定的格式,不可以改變
3.targetNamespace 域名名稱空間可以自定義,但是是要求唯一的
4.elementFormDefault 是固定的格式
5.根標簽一定要是 【schema】
常用關鍵字解析;
sequence 序列;
是指定約束XML文件定義節點時
按照一個什么順序進行一個定義
complextype 復雜類型;
是在xsd文檔聲明這個節點下有子節點。
name;
是標簽名
type;
是標簽內容類型
★注;type如果設置成數值型(double,decimal....)的,一般都是要顯示的賦值
常見的單詞
Ocuurs 重視的意思
decimal 小數
--------------------------------------------Scheme文檔開頭解析 --------------------------------------------------------------------
xs是自定義的一個標識符
名稱空間是一個key,保證唯一性用于約束XML文檔時,XML文檔找到這個文檔
<?xml version="1.0" encoding="UTD-8"> ----- 指定文檔類型
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" ----- 固定的格式
targetNamespace="自定義" ----- 自定義域名,用于標識,
|====一般是域名,保證在網絡上的唯一性
elementFormDefault="qualified" ----- 固定格式,qualified;合格
>
</xs:schema>
----------------------------------XML文檔 —— 引用 —— Scheme文檔 --------------------------------------------------------------------
1.my ----- 是自定義的一個名字,可以用于在引入多個約束文件時,可以區分
2.xis ----- 是自定義的,也是可以用于在引入多個約束文件時區分,
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文檔名稱空間 文件名"
>
</my:scheme>
*請認真填寫需求信息,我們會在24小時內與您取得聯系。