日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

第1天 XML和DTD、schema约束

發(fā)布時間:2025/7/25 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第1天 XML和DTD、schema约束 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、xml

* 擴(kuò)展名:*.xml

* 作用:存儲、配置

一個XML文件分為如下幾部分內(nèi)容:文檔聲明、元素、屬性、注釋? CDATA區(qū)、特殊字符、處理指令(processing instruction)。

1.1文檔聲明

最簡單的聲明語法:

<?xml version="1.0" ?>

version:設(shè)置當(dāng)前xml文檔內(nèi)容使用的版本

用encoding屬性說明文檔的字符編碼:

???????? <?xml version="1.0" encoding="GB2312" ?>?

用standalone屬性說明文檔是否獨立:

???????? <?xml version="1.0" encoding="GB2312"? standalone="yes" ?>

常見錯誤

沒有寫引號:<?xml version=1.0 ?>

輸入內(nèi)容中有中文: <?xml version=“1.0” ?>? //中文空格

編碼錯誤,記事本設(shè)置編碼UTF-8,用其他編輯器打開。

1.2元素

XML元素指XML文件中出現(xiàn)的標(biāo)簽,一個標(biāo)簽分為開始標(biāo)簽和結(jié)束標(biāo)簽。

格式:<x></x> or <x />,名稱自定義

  • 建議字母開頭
  • 區(qū)分大小寫
  • 不能包含空格 <a b>
  • 不能包含冒號 <a:b>

注意:

  • ?一個標(biāo)簽中也可以嵌套若干子標(biāo)簽,但不能交叉嵌套
  • ?格式良好的xml文檔只有一個根

  由于在XML中,空格和換行都作為原始內(nèi)容被處理,所以,在編寫XML文件時,使用換行和縮進(jìn)等方式來讓原文件中的內(nèi)容清晰可讀的“良好”書寫習(xí)慣可能要被迫改變。

1.3屬性

  • 前提:在某元素的基礎(chǔ)上,確定相應(yīng)的屬性
  • 格式:<x attribute="attrValue"? />.

一個標(biāo)簽可以有多個屬性,每個屬性都有它自己的名稱和取值。

屬性值一定要用雙引號(")或單引號(')引起來。

定義屬性必須遵循與標(biāo)簽相同的命名規(guī)范。

1.4注釋

格式:<!--注釋內(nèi)容-->

注意:XML聲明之前不能有注釋;注釋不能嵌套

1.5轉(zhuǎn)義字符

???????? 格式: &xx;? --> &#123;詳見“html轉(zhuǎn)義.html”

HTML特殊轉(zhuǎn)義字符列表

最常用的字符實體

Character Entities

顯示

說明

實體名稱

實體編號

?

半方大的空白

&ensp;

&#8194;

?

全方大的空白

&emsp;

&#8195;

?

不斷行的空白格

&nbsp;

&#160;

<?

小于

&lt;

&#60;

>?

大于

&gt;

&#62;

&

&符號

&amp;

&#38;

"

雙引號

&quot;

&#34;

?

版權(quán)

&copy;

&#169;

?

已注冊商標(biāo)

&reg;

&#174;

?

商標(biāo)(美國)

?

&#8482;

×

乘號

&times;

&#215;

÷

除號

&divide;

&#247;

1.6 CDATA區(qū)

  在編寫XML文件時,有些內(nèi)容可能不想讓解析引擎解析執(zhí)行,而是當(dāng)作原始內(nèi)容處理。遇到此種情況,可以把這些內(nèi)容放在CDATA區(qū)里,對于CDATA區(qū)域內(nèi)的內(nèi)容,XML解析程序不會處理,而是直接原封不動的輸出。

  • 在xml文檔中存放任意內(nèi)容的區(qū)域
  • 格式:<![CDATA[? cdata內(nèi)>*容? ]]>

1.7處理指令(processing instruction,PI)

  處理指令用來指揮解析引擎如何解析XML文檔內(nèi)容。例如,在XML文檔中可以使用xml-stylesheet指令,通知XML解析引擎,應(yīng)用css文件顯示xml文檔內(nèi)容。

???????? 格式:<?xml-stylesheet type="text/css" href="uri"? ?>

  • type:類型,內(nèi)容是MIME類型 image/jpeg
  • href:確定引用文件的位置。
  •     uri:統(tǒng)一資源標(biāo)識符,1.html? news/m.html
  •     url:統(tǒng)一資源定位符,http://www.fengjie.com/news/m.html

處理指令必須以“<?”作為開頭,以“?>”作為結(jié)尾,XML聲明語句就是最常見的一種處理指令。

1.8 xml亂碼

???????? * 文檔內(nèi)容編碼:UTF-8

???????? * 文件編碼:window默認(rèn)GBK

???????? * 解決文件亂碼的方法:將文檔內(nèi)容編碼與文件編碼統(tǒng)一。

XML語法規(guī)則總結(jié):

  • ?所有 XML 元素都須有關(guān)閉標(biāo)簽
  • XML 標(biāo)簽對大小寫敏感
  • XML 必須正確地嵌套順序
  • XML 文檔必須有根元素
  • XML 的屬性值須加引號
  • 特殊字符必須轉(zhuǎn)義
  • XML 中的空格會被保留

2、編碼、字符集

???????? UTF-8:萬國碼,(1-6字符)

???????? GB2312:國標(biāo)碼(簡體)

???????? GBK:國標(biāo)碼(簡體、繁體),GB2312升級版

???????? GB18030:國標(biāo)碼(簡體、繁體、少數(shù)名族),GBK升級版

???????? BIG5:大5碼(繁體)

???????? ISO-8859-1:英文編碼

3、約束

???????? 在XML技術(shù)里,可以編寫一個文檔來約束一個XML文檔的書寫規(guī)范,這稱之為XML約束。

???????? 常用的約束技術(shù)有兩種:XML DTD和XML schema

3.1 DTD約束

  DTD(Document Type Definition),全稱為文檔類型定義。DTD約束既可以作為一個單獨的文件編寫,也可以在XML文件內(nèi)編寫。XML文件使用 DOCTYPE 聲明語句來指明它所遵循的DTD文件。

(1)文檔關(guān)聯(lián)方式

  • ?內(nèi)部關(guān)聯(lián)格式:<!DOCTYPE 根元素 [語法]>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books [ <!ELEMENT books (book+)> <!ELEMENT book (name,author,price)> <!ELEMENT name (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT price (#PCDATA)> ]> <books> <book><name>Java</name><author>LXH</author><price>3212</price> </book> </books>
  • 外部關(guān)聯(lián)格式:<!DOCTYPE 根元素 SYSTEM "URI">

book.dtd

<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT books (book+)> <!ELEMENT book (name,author,price)> <!ELEMENT name (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT price (#PCDATA)>

book.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books SYSTEM "book.dtd"> <books> <book><name>Java</name><author>LXH</author><price>44</price> </book> </books>
  • 公共關(guān)聯(lián)格式:<!DOCTYPE 根元素 PUBLIC "文檔名稱" "文檔URL">

新建一個Web Project,J2EE Specification Level選擇“J2EE1.3”,如圖所示。

在新建的Web Project下有一個WebRoot文件夾,下面有個WEB-INFO,里面還有個web.xml文件,打開web.xml,里面內(nèi)容如下:

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list> </web-app>

里面的“http://java.sun.com/dtd/web-app_2_3.dtd”就是使用了公共關(guān)聯(lián),按住Ctrl點擊,可關(guān)聯(lián)到此文檔。

(2)元素

?格式:<!ELEMENT 元素名稱 元素內(nèi)容的類型>

? 符號:

? ? ? ? ? ? ? ? ?? : 0或1

? ? ? ? ? ? ? ? + : >=1

? ? ? ? ? ? ? ? ?* : >=0

? ? ? ? ? ? ? ? ?(): 分組

? ? ? ? ? ? ? ? ?| : 選擇

? ? ? ? ? ? ? ? ?,: 順序

? ? 類型:

  • #PCDATA,只能書寫字符,不能包含子元素,注意: (#PCDATA)
  • EMPTY,元素內(nèi)容為空
  • ANY,元素內(nèi)容任意

例:book.dtd

<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT books (book+)> <!ELEMENT book (name,author*,version?,(year|price))> <!ELEMENT name (#PCDATA)> <!ELEMENT author (#PCDATA)> <!ELEMENT version (#PCDATA)> <!ELEMENT year EMPTY> <!ELEMENT price EMPTY>

book.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books SYSTEM "book.dtd"> <books> <book><name>Java</name><author>LXH</author><author>HLD</author><version>v1.1</version><price></price> </book> <book><name>C++</name><author>HLD</author><year/> </book> </books>

(3)屬性

???????? 格式:<!ATTLIST 元素名稱 [屬性名稱 屬性類型 約束 ...]>

屬性類型及其含義:

約束的四種形式:

  • ?#REQUIRED,必須填寫
  • ?#IMPLIED,可選
  • ? #FIXED value,固定值
  • ? defaultValue,默認(rèn)值

例:book.dtd

<?xml version="1.0" encoding="UTF-8"?> <!ELEMENT books (book+)> <!ELEMENT book (name,price)> <!ELEMENT name (#PCDATA)> <!ELEMENT price (#PCDATA)> <!ATTLIST bookid ID #REQUIREDtitle CDATA #IMPLIEDlang CDATA #FIXED "固定值"category CDATA "默認(rèn)值"pid IDREF #REQUIREDcity (北京|上海|廣州) #REQUIRED >

book.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books SYSTEM "book.dtd"> <books> <book id="B001" title="" pid="B001" city="上海"><name>Java</name><price></price> </book> <book id="B002" title="" category="類別" pid="B002" city="上海"><name>Java</name><price></price> </book> </books>

(4)實體

???????? 實體是變量,用于引用普通文本或特殊字符的快捷方式的變量。

實體分為內(nèi)部實體和外部實體。

  • 內(nèi)部實體

內(nèi)部實體分為引用實體和參數(shù)實體:

*引用實體:主要在 XML 文檔中被應(yīng)用。

  • ?格式:<!ENTITY 實體名稱 "內(nèi)容">
  • ?使用位置:在xml文檔中使用
  • ?使用格式:&實體名稱;
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books[<!ENTITY bookname "java"><!ELEMENT books (book+)><!ELEMENT book (name,price)><!ATTLIST bookid ID #REQUIREDtitle CDATA #IMPLIEDlang CDATA #FIXED "固定值"category CDATA "默認(rèn)值"pid IDREF #REQUIREDcity (北京|上海|廣州) #REQUIRED> ]> <books> <book id="B002" title="" category="類別" pid="B002" city="上海"><name>&bookname;</name><price>40</price> </book> </books>

*參數(shù)實體:被 DTD 文件自身使用

  • 格式:<!ENTITY % 實體名稱 "內(nèi)容">
  • 使用位置:在DTD文檔中使用
  • 使用格式:%實體名稱
<?xml version="1.0" encoding="UTF-8"?> <!ENTITY % fieldVal "name,age"> <!ELEMENT persons (person+,user+)> <!ELEMENT person (%fieldVal;,tel)> <!ELEMENT user (%fieldVal;,sal)> <!ELEMENT name (#PCDATA)> <!ELEMENT age (#PCDATA)> <!ELEMENT tel (#PCDATA)> <!ELEMENT sal (#PCDATA)> <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books SYSTEM "book.dtd"> <persons><person> <name>zhangsan</name><age>32</age><tel>1234</tel></person><user><name>ls</name><age>24</age><sal>889</sal></user> </persons>

*外部實體

  • 格式:<!ENTITY 實體名稱 SYSTEM "URI">
  • 使用位置:在xml文檔中使用
  • 使用格式:&實體名稱;

part.xml

<?xml version="1.0" encoding="UTF-8"?> <entity>測試外部實體</entity>

book.dtd

<?xml version="1.0" encoding="UTF-8"?> <!ENTITY part SYSTEM "part.xml"> <!ELEMENT books (book+)> <!ELEMENT book ANY> <!--(#PCDATA)不能有子元素-->

book.xml

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE books SYSTEM "book.dtd"> <books><book>&part;</book> </books>

<book>&part;</book>相當(dāng)于<book><entity>測試外部實體</entity></book>

3.2 schema約束

XML Schema 文件自身就是一個XML文件,擴(kuò)展名為*.xsd。XML Schema是用一套預(yù)先規(guī)定的XML元素和屬性創(chuàng)建的,這些元素和屬性定義了XML文檔的結(jié)構(gòu)和內(nèi)容模式。 XML Schema規(guī)定XML文檔實例的結(jié)構(gòu)和每個元素/屬性的數(shù)據(jù)類型。

  • l? 編寫了一個XML Schema約束文檔后,通常需要把這個文件中聲明的元素綁定到一個URI地址上
  • l? 在XML Schema技術(shù)中有一個專業(yè)術(shù)語來描述這個過程,即把XML Schema文檔聲明的元素綁定到一個名稱空間
  • l? 以后XML文件就可以通過這個URI(即名稱空間)來告訴解析引擎,xml文檔中編寫的元素來自哪里,被誰約束

schema文檔,根元素是schema,在http://www.w3.org/2001/XMLSchema定義

<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/books" xmlns:tns="http://www.example.org/books" elementFormDefault="qualified"><xs:element name="books"></xs:element> </xs:schema>

books為根元素

【targetNamespace】為當(dāng)前的schema文檔命名,屬性在自定義。但是,要求全球唯一,采用URL域名進(jìn)行命名。

【xmlns】xml namespace ——>xml命名空間。引用已有的命名空間,官方為自己的schema文檔起的名稱。

【xmlns:tns】

格式1:? xmlns:別名

使用:tns:schema,從當(dāng)前別名tns所代表的schema文檔中定義了schema元素

格式2 xmlns(默認(rèn)命名空間引用)

?????????????????? 好處:防止命名沖突

【elementFormDefault="qualified"】 指出任何 XML 實例文檔所使用的且在此 schema 中聲明過的元素必須被命名空間限定。

命名空間的使用在XML中主要有兩個目的:

n? 用于區(qū)分那些名稱相同但來自不同schema庫,具有不同含義的元素和屬性。通過將元素、屬性與URL相關(guān)聯(lián),命名空間能夠區(qū)分具有相同名稱的元素

n? 在一個單一的XML應(yīng)用中,將相關(guān)的元素和屬性組合起來,使它們可以很容易地被軟件包識別。

名稱空間用一個唯一的URI(Uniform Resource Identifier,統(tǒng)一資源標(biāo)識符)表示,僅起到唯一標(biāo)識的作用。

n? 默認(rèn)命名空間聲明:不帶前綴 ,默認(rèn)命名空間只能有一個

  • 格式:xmlns=“url”
  • 例如:xmlns="http://www.w3.org/2001/XMLSchema"

n? 顯式命名空間聲明:聲明時指定前綴

  • 格式:xmlns: quoteName =“url”
  • 例如: xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance

一個XML Schema文檔通常稱之為模式文檔(約束文檔),遵循這個文檔書寫的xml文件稱之為實例文檔。并且根元素schema節(jié)點必須來自http://www.w3.org/2001/XMLSchema 命名空間,官方建議使用使用前綴 xs ,及xmlns:xs。

Schema相對于DTD的明顯好處是,XML Schema文檔本身也是XML文檔,而不是像DTD一樣使用自成一體的語法。

在文檔關(guān)聯(lián)中,如何確定文件的位置?

官方規(guī)定“http://www.w3.org/2001/XMLSchema-instance” 將當(dāng)前的xml文檔實例化

* schemaLocation屬性(兩個參數(shù)空格隔開)

* 第一參數(shù):實例化所需要的schema文檔的名稱

* 第二參數(shù):schema文檔的URI

定義根元素element:<別名:element name=””>

調(diào)用schema(book.xml)

<?xml version="1.0" encoding="UTF-8"?> <books xmlns="http://www.example.org/books" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/books books.xsd" > </books>

XML Schema基礎(chǔ)概念:

簡易元素:僅包含文本的元素。它不會包含任何其他的元素或?qū)傩浴?/p>

復(fù)合元素:包含其他元素及/或?qū)傩缘?XML 元素

l? 空元素

l? 包含其他元素的元素

l? 僅包含文本的元素

l? 包含元素和文本的元素

Schema文檔中出現(xiàn)的元素標(biāo)記

元素類型

描述

schema

聲明一個已經(jīng)聲明的schema

element

聲明一個元素

attribute

聲明一個屬性

simpleType

定義一個簡單類型,它決定了元素和屬性值的約束和相關(guān)信息

complexType

定義一個復(fù)合類型,它決定了一組元素和屬性值的約束和相關(guān)信息

group

把一組元素聲明組合在一起,以便它們能夠一起被復(fù)合類型應(yīng)用

attributeGroup

把一組屬性聲明組合在一起,以便它們能夠一起被復(fù)合類型應(yīng)用

simpleContent

應(yīng)用于complexType,對它的內(nèi)容進(jìn)行約束和擴(kuò)展等

choice

允許唯一的一個元素從一組中被選擇

list

從一個特定數(shù)據(jù)類型的集合中選擇定義一個簡單類型元素

union

從一個特定簡單數(shù)據(jù)類型的集合中選擇定義一個簡單類型元素

unique

定義一個屬性或元素值,它必須在一個特定的范圍內(nèi)

sequence

給一組元素一個特定的序列

restriction

定義一個約束條件

例1:定義一個簡單元素

<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.example.org/books" xmlns:tns="http://www.example.org/books" elementFormDefault="qualified"><element name="books"><complexType><sequence><!-- 1、定義元素 --><element name="ele"></element><!—所有的元素必須定義在跟元素下面(這里) --> </sequence></complexType></element> </schema>

對應(yīng)的xml文件:

<?xml version="1.0" encoding="UTF-8"?> <!—-對應(yīng)的xml文檔--> <books xmlns="http://www.example.org/books" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.org/books books.xsd" ><ele></ele> </books>

例2:定義元素包含子元素,子元素順序出現(xiàn)

<element name="person"><complexType><sequence> <!-- 順序 --><element name="name"></element><element name="age"></element></sequence></complexType> </element>

例3:定義含有子元素的元素--任選一個

<element name="user"><complexType><choice><!-- 選擇 --><element name="name"></element><element name="age"></element></choice></complexType> </element>

例4:定義含有子元素的元素--子元素沒順序

<element name="worker"><complexType><all><!-- 無序的 --><element name="name"></element><element name="age"></element></all></complexType> </element>

例5.1:僅含有屬性的空元素

<element name="img"><complexType><attribute name="src" type="string"/></complexType> </element>

例5.2:僅含有屬性的空元素,屬性必須寫

<element name="img"><complexType><!—【use】 optional:可選、required:必選、prohibited:禁用--><attribute name="src" type="string" use="required"/></complexType> </element>

例6:必須含有屬性的非空元素

<!-- <price unit="¥">30</price> --> <element name="price"><complexType> <!-- 類型為復(fù)合元素 --><simpleContent><!-- 內(nèi)容簡單 --><!--將簡單的內(nèi)容擴(kuò)展成復(fù)雜的類型 【base】確定簡單內(nèi)容的類型 --><extension base="integer"><!-- 定義屬性:【name】確定名稱、【type】確定類型、【use】optional:可選、required:必選、prohibited:禁用--><attribute name="unit" type="string" use="required"></attribute></extension></simpleContent></complexType> </element>

例7:必須含有屬性也包含子元素的元素

<element name="book"><complexType><sequence><element name="title" type="string"></element></sequence><attribute name="catagory" type="string"></attribute></complexType></element>

例8、元素內(nèi)容必須是2-5之間的數(shù)

<element name="number"><simpleType><restriction base="int"><!-- 限制 --><maxInclusive value="5"/><minInclusive value="2"/></restriction></simpleType> </element>

例9:包含多個指定元素

<!--<students><student></student><student></student> </students> minOccurs:最小出現(xiàn)次數(shù),默認(rèn)為1 maxOccurs:最大出現(xiàn)次數(shù),默認(rèn)為1 ?——>minOccurs=0; maxOccurs =1 + ——>minOccurs=1; maxOccurs =unbounded * ——>minOccurs=0; maxOccurs =unbounded --> <element name="students"><complexType><sequence minOccurs="1" maxOccurs="unbounded"><element name="student"></element></sequence></complexType> </element>

例10:將身份證號格式化

<element name="personId"><simpleType><restriction base="string"><pattern value="\d{6}-\d{8}-\d{4}"></pattern></restriction></simpleType> </element>

屬性相關(guān)定義

l? attribute元素的use屬性來定義是否是必須的屬性

  • required是必須值
  • optional是可選值
  • prohibited是無屬性值

l? 缺省值如何定義

  • <attribute?name="quantity"?type="integer"?default="1"/>

l? 固定值如何定義

  • <attribute name="name" fixed="張三"></attribute

Schema和DTD區(qū)別

XML從SGML (Standard Generalized Markup Language,標(biāo)準(zhǔn)通用標(biāo)記語言)中繼承了DTD,并用它來定義內(nèi)容的模型,驗證和組織元素。同時,它也有很多局限:

  • DTD不遵守XML語法;
  • DTD不可擴(kuò)展;
  • DTD不支持命名空間的應(yīng)用;
  • DTD沒有提供強(qiáng)大的數(shù)據(jù)類型支持,只能表示很簡單的數(shù)據(jù)類型。

Schema完全克服了這些弱點,使得基于Web的應(yīng)用系統(tǒng)交換XML數(shù)據(jù)更為容易。下面是它所展現(xiàn)的一些新特性:

  • Schema完全基于XML語法,不需要再學(xué)習(xí)特殊的語法;
  • Schema能用處理XML文檔的工具處理,而不需要特殊的工具;
  • Schema大大擴(kuò)充了數(shù)據(jù)類型,支持booleans、numbers、dates and times、URIs、integers、decimal numbers和real numbers等;
  • Schema支持原型,也就是元素的繼承。如:我們定義了一個“聯(lián)系人”數(shù)據(jù)類型,然后可以根據(jù)它產(chǎn)生“朋友聯(lián)系人”和“客戶聯(lián)系”兩種數(shù)據(jù)類型;
  • Schema支持屬性組。我們一般聲明一些公共屬性,然后可以應(yīng)用于所有的元素,屬性組允許把元素、屬性關(guān)系放于外部定義、組合;
  • 開放性。原來的DTD只能有一個DTD應(yīng)用于一個XML文檔,現(xiàn)在可以有多個Schema運用于一個XML文檔。

?

轉(zhuǎn)載于:https://www.cnblogs.com/bizhenLiu-cnblogs/p/6038200.html

總結(jié)

以上是生活随笔為你收集整理的第1天 XML和DTD、schema约束的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。