六月婷婷综合激情-六月婷婷综合-六月婷婷在线观看-六月婷婷在线-亚洲黄色在线网站-亚洲黄色在线观看网站

明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

XML簡明圖文詳細教程第6課 使用XML Schema

[摘要]什么是XML Schema? XML Schema是一個基于XML的語法或schema規(guī)范,用來定義XML文檔的標(biāo)記方式。XML Sc hema是一個由Microsoft建議的schema規(guī)范,它與...
什么是XML Schema? 
XML Schema是一個基于XML的語法或schema規(guī)范,用來定義XML文檔的標(biāo)記方式。XML Sc 
hema是一個由Microsoft建議的schema規(guī)范,它與文檔類型定義(DTD)相比具有很大的 
優(yōu)勢,而DTD是最初用來定義XML模型的schema規(guī)范。DTD存在很多缺點,包括使用非XML 
語法,不支持數(shù)據(jù)類型定義,不具有擴展性等。例如,DTD不允許把元素內(nèi)容定義為另外 
一個元素,或字符串。想了解更多有關(guān)DTD的內(nèi)容,可以參考W3C XML建議書。 XML Sch 
ema從幾個方面改善了DTD,包括使用XML語法,支持數(shù)據(jù)類型定義和名域。例如,XML S 
chema允許你把一個元素說明為一個integer, float,Boolean, URL等類型。 
在Internet Explorer 5中的XML解析器可以解析使用DTD或XML Schema的XML文檔。 
如何建立XML Schema? 
請在下面的XML文檔中找一找每個節(jié)點的schema聲明。 
<class xmlns="x-schema:classSchema.xml"> 
      <student studentID="13429"> 
         <name>Jane Smith</name> 
         <GPA>3.8</GPA> 
     </student> 
</class> 
你會注意到在上面文檔中默認的名域是“x-schema:classSchema.xml”。這告訴解析器 
根據(jù)URL(“classSchema.xml”)上的schema(x-schema)來解析整個文檔。 
下面是上面那個文檔的完整的schema。注意schema的根元素中的名域聲明。第一個(xml 
ns=”urn:schemas-microsoft-com:xml-data”)表明這個XML文檔是一個XML Schema。第 
二個(xmlns:dt=”urn:schemas-microsoft-com:datatypes”)允許schema處理者在Elem 
entType和AttributeType聲明中的type屬性前加dt前綴來說明元素的類型和內(nèi)容的特征 
。 
<Schema  xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mi 
crosoft-com:datatypes"> 
     <AttributeType name='studentID' dt:type='string' required='yes'/> 
     <ElementType name='name' content='textOnly'> 
     <ElementType name='GPA' content='textOnly' dt:type='float'/> 
     <ElementType name='student' content='mixed'> 
         <attribute type='studentID'/> 
         <element type='name'/> 
         <element type='GPA'/> 
     </ElementType> 
     <ElementType name='class' content='eltOnly'> 
         <element type='student'/> 
     </ElementType> 
</Schema> 
用來定義元素和屬性的聲明元素如下所示: 
元    素 
 說    明 
ElementType 把類型和條件賦給一個元素,可以包含子元素 
AttributeType 把類型和條件賦給一個屬性 
attribute 聲明以前定義過的屬性類型可以出現(xiàn)在名為ElementType的元素的作用域中 
element 聲明以前定義過的元素類型可以出現(xiàn)在名為ElementType的元素的作用域中 
  
Schema的內(nèi)容以最深層的元素的“AttributeType”和“ElementType”聲明開頭。 
<AttributeType name='studentID' dt:type='string' required='yes'/> 
<ElementType name='name' content='textOnly'> 
<ElementType name='GPA' content='textOnly' dt:type='float'/> 
ElementType聲明后接著就是它的屬性和子元素,如果一個元素有屬性或子元素,必須把 
這種方法包含在它的ElementType聲明中,或者是必須在它們自己的 ElementType 或 A 
ttributeType聲明中進行前導(dǎo)聲明。 
<ElementType name='student' content='mixed'> 
     <attribute type='studentID'/> 
     <element type='name'/> 
     <element type='GPA'/> 
</ElementType> 
不同于DTDs,XML Schema允許有一個開放的內(nèi)容模式,你可以進行定義數(shù)據(jù)類型、使用 
默認值等等操作而不必限定內(nèi)容。 
在下面的schema中,<GPA> 元素的類型被定義并有一個默認值,但在 <student> 元素中 
沒有其他節(jié)點被聲明。 
<Schema xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-mic 
rosoft-com:datatypes"> 
      <AttributeType name="scale" default="4.0"/> 
      <ElementType name="GPA" content="textOnly" dt:type="float"> 
         <attribute type="scale"/> 
      </ElementType> 
      <AttributeType name="studentID"/> 
      <ElementType name="student" content="eltOnly" model="open" order="many 
"> 
         <attribute type="studentID"/> 
         <element type="GPA"/> 
      </ElementType> 
</Schema> 
上面的schema允許你只驗證你所關(guān)心的區(qū)域,這使你對文檔的驗證級別有更多的控制, 
并允許你使用schema提供的一些特性而不必嚴格確認。 
嘗試一下! 
試著處理一下下面的XML文檔的schema。 
<order> 
  <customer> 
    <name>Fidelma McGinn</name> 
    <phone_number>425-655-3393</phone_number> 
  </customer> 
  <item> 
    <number>5523918</number> 
    <description>shovel</description> 
    <price>39.99<price> 
  </item> 
  <date_of_purchase>1998-10-23</date_of_purchase> 
  <date_of_delivery>1998-11-03</date_of_delivery> 
</order> 
如果你處理完schema,在XML Validator中運行 . 
下載MSDN Online的區(qū)域中提供了一套 XML sample files, 包括一個有相關(guān)schema的XM 
L文檔。下載這些示例程序可以與XML文檔和schema一起運行。如果你想要根據(jù)一個sche 
ma來測試XML的有效性,可以從XML Validator 處下載文檔或查看Mime Type Viewer中的 
XML文件。 
一些說明: 
ElementType和 AttributeType 聲明必須放在attribute和element內(nèi)容聲明之前。例如 
,在上面的schema中,<GPA>元素的ElementType聲明必須放在<student>元素的Element 

Type聲明之前。  
order屬性的默認值是建立在content屬性的值上的。當(dāng)content值為“eltOnly”時,or 
der默認值是seq。當(dāng)content值為“mixed”時,order默認值是“many”。see 如果想了 
解有關(guān)這些缺省值的信息,可以查看 XML Schema Reference。





主站蜘蛛池模板: 色综合天天射 | 日韩亚洲一区二区三区 | 日产一区二区三区 | 在线观看视频国产 | 色综合合久久天天给综看 | 日韩一级片免费看 | 日韩在线视频导航 | 亚洲免费视频观看 | 日本字幕 | 亚洲精品在线看 | 日本在线观看一区二区三区 | 午夜看片影院在线观看 | 日本高清www视频在线观看 | 丝袜美腿护士办公室在线观看 | 中文字幕日本一区波多野不卡 | 亚洲国产午夜看片 | 亚洲a级大片 | 一级片久久 | 日本a级片免费 | 人人爽天天碰天天躁夜夜躁 | 在线视频二区 | 亚洲艹| 午夜影视体验区 | 亚洲视频欧美视频 | 日bb小说| 青青草色 | 伊人久久大香线蕉资源 | 日本大片成人免费网址 | 亚洲乱码一二三四区麻豆 | 亚洲国产日韩欧美在线a乱码 | 日本视频在线观看播放免费 | 亚洲丁香网 | 日韩专区一区 | 日韩伦理一区 | 天天精品 | 日韩精品一区二区三区中文字幕 | 做a视频大全 | 五月花综合网 | 一区二区视频在线播放 | 香蕉91 | 欧美在线a |