1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          XSD文件結構詳解「建議收藏」

          來源:互聯網轉載 時間:2023-12-13 17:17:16

          XSD (xml Schema Definition)

          Xml Schema的用途

          1.定義一個Xml文檔中都有什么元素

          2.定義一個Xml文檔中都會有什么屬性

          3.定義某個節點的都有什么樣的子節點,可以有多少個子節點,子節點出現的順序

          4.定義元素或者屬性的數據類型

          5.定義元素或者屬性的默認值或者固定值

          Xml Schema的根元素:

          <?xml version=”1.0″?>

          <xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”表示數據類型等定義來自w3

          targetNamespace=”http://www.w3schools.com”表示文檔中要定義的元素來自什么命名空間

          xmlns=”http://www.w3schools.com”表示此文檔的默認命名空間是什么

          elementFormDefault=”qualified”>表示要求xml文檔的每一個元素都要有命名空間指定

          ……定義主體部分……

          </xs:schema>

          如何定義一個簡單元素

          <xs:element此處表示要定義一個元素

          name=”color”表示要定義元素的名稱

          type=”xs:string”表示要定義元素的數據類型

          default=”red”表示定義元素的默認值

          fixed=”red”/>表示要定義元素的固定值,此元素只可以取“red”值

          以上定義了一個簡單元素,元素實例:<color>red</color>

          如何定義一個屬性

          <xs:attribute

          name=”birthday”表示要定義屬性的名字

          type=”xs:date”表示要定義屬性的數據類型

          default=”2001-01-11”表示要定義屬性的默認值

          fixed=”2001-01-11”表示要定義屬性的固定值

          use=”required”/>表示此屬性是否是必須指定的,即如果不指定就不符合Schema,默認沒有use=”required”屬性表示屬性可有可無

          如何定義元素或者屬性值的限制

          1.最大值最小值限制

          <xs:element name=”age”>

          <xs:simpleType>

          <xs:restriction base=”xs:integer”>

          <xs:minInclusive value=”0″/>大于等于0,<xs: minExclusive>表示最小值但是不包括指定值

          <xs:maxInclusive value=”120″/>小于等于120,<xs: maxExclusive>

          </xs:restriction>

          </xs:simpleType>

          </xs:element>

          2.枚舉限制,指只能在指定的幾個值中取值

          <xs:element name=”car” type=”carType”/>

          <xs:simpleType name=”carType”>

          <xs:restriction base=”xs:string”>

          <xs:enumeration value=”Audi”/>

          <xs:enumeration value=”Golf”/>

          <xs:enumeration value=”BMW”/>

          </xs:restriction>

          </xs:simpleType>

          3.模式(pattern)限制,指字符串的格式必須滿足制定的匹配模式

          cellpadding="0" cellspacing="0" >

          例子

          說明

          <xs:element name="letter">

          Jetbrains全家桶1年46,售后保障穩定

          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[a-z]"/>
           </xs:restriction>
          </xs:simpleType>

          </xs:element>

          表示只能在小寫字母中取一個值

          <xs:element name="initials">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[A-Z][A-Z][A-Z]"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是三個大寫字母

          <xs:element name="initials">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是三個字母,可以是大寫或小寫的

          <xs:element name="choice">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[xyz]"/>
           </xs:restriction>
          </xs:simpleType>

          </xs:element>

          表示必須是xyz中的一個

          <xs:element name="prodid">
          <xs:simpleType>
           <xs:restriction base="xs:integer">
           <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示數字的范圍是0-99999

          <xs:element name="letter">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="([a-z])*"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是0或者多個小寫字符組成的序列

          <xs:element name="letter">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="([a-z][A-Z])+"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是多個字母。

          <xs:element name="gender">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="male|female"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示是male或者female中的一個

          <xs:element name="password">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[a-zA-Z0-9]{8}"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是8個字母數字字符

          4.字符串長度的限制

          <xs:element name=”password”>

          <xs:simpleType>

          <xs:restriction base=”xs:string”>

          <xs:length value=”8″/>

          </xs:restriction>

          </xs:simpleType>

          </xs:element>

          長度必須是8。

          <xs:element name=”password”>

          <xs:simpleType>

          <xs:restriction base=”xs:string”>

          <xs:minLength value=”5″/>

          <xs:maxLength value=”8″/>

          </xs:restriction>

          </xs:simpleType>

          </xs:element>

          表示長度在5-8之間

          6.對于空白字符的限制

          示例

          說明

          <xs:element name="address">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:whiteSpace value="preserve"/>
           </xs:restriction>
          </xs:simpleType>

          </xs:element>

          保留原樣,表示xml處理器不會移除或者替換任何空白字符

          <xs:element name="address">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:whiteSpace value="replace"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          指回車,換行,Tab都會被替換成空格處理

          <xs:element name="address">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:whiteSpace value="collapse"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          去掉多于一個空格,和html中處理方式相同

          如何定義復雜類型

          復雜類型是指定義元素中包含屬性或者子元素的類型

          1.定義只包含子元素的復雜類型

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          2.定義只包含屬性的復雜類型

          <xs:element name=”product” type=”prodtype”/>

          <xs:complexType name=”prodtype”>

          <xs:attribute name=”prodid” type=”xs:positiveInteger”/>

          </xs:complexType>

          3.定義只包含內容的復雜類型

          <xs:element name=”shoesize” type=”shoetype”/>

          <xs:complexType name=”shoetype”>

          <xs:simpleContent>

          <xs:extension base=”xs:integer”>

          <xs:attribute name=”country” type=”xs:string” />

          </xs:extension>

          </xs:simpleContent>

          </xs:complexType>

          4.定義包含內容和子元素混合的復雜類型

          <xs:element name=”letter”>

          <xs:complexTypemixed=”true”>

          <xs:sequence>

          <xs:element name=”name” type=”xs:string”/>

          <xs:element name=”orderid” type=”xs:positiveInteger”/>

          <xs:element name=”shipdate” type=”xs:date”/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          以上定義對應的Xml

          <letter>

          Dear Mr.<name>John Smith</name>.

          Your order <orderid>1032</orderid>

          will be shipped on <shipdate>2001-07-13</shipdate>.

          </letter>

          5.定義包含屬性和子元素的復雜類型

          使用指示器

          在Xsd中的指示器包括

          1.順序指示器

          1)All

          指示子元素可以以任何順序出現,并且每一個元素都必須出現一次

          <xs:element name=”person”>

          <xs:complexType>

          <xs:all>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:all>

          </xs:complexType>

          </xs:element>

          2)Choice

          指示子元素中可以出現一個或者另一個

          <xs:element name=”person”>

          <xs:complexType>

          <xs:choice>

          <xs:element name=”employee” type=”employee”/>

          <xs:element name=”member” type=”member”/>

          </xs:choice>

          </xs:complexType>

          </xs:element>

          3)Sequence

          指示子元素必須按照順序出現

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          2.出現次數指示器minOccurs,maxOccurs

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”full_name” type=”xs:string”/>

          <xs:element name=”child_name” type=”xs:string”

          maxOccurs=”10″ minOccurs=”0″/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          3.組指示器(group Indicators)

          用來定義相關的一組元素

          <xs:group name=”persongroup”>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          <xs:element name=”birthday” type=”xs:date”/>

          </xs:sequence>

          </xs:group>

          <xs:element name=”person” type=”personinfo”/>

          <xs:complexType name=”personinfo”>

          <xs:sequence>

          <xs:group ref=”persongroup”/>

          <xs:element name=”country” type=”xs:string”/>

          </xs:sequence>

          </xs:complexType>

          用來定義一組相關的屬性

          <xs:attributeGroup name=”personattrgroup”>

          <xs:attribute name=”firstname” type=”xs:string”/>

          <xs:attribute name=”lastname” type=”xs:string”/>

          <xs:attribute name=”birthday” type=”xs:date”/>

          </xs:attributeGroup>

          <xs:element name=”person”>

          <xs:complexType>

          <xs:attributeGroup ref=”personattrgroup”/>

          </xs:complexType>

          </xs:element>

          Any關鍵字

          表示可以有任意元素

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          <xs:any minOccurs=”0″/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          anyAttribute關鍵字

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:sequence>

          <xs:anyAttribute/>

          </xs:complexType>

          </xs:element>

          substitutionGroup關鍵字

          表示某一個元素和另一個替代元素定義相同

          <xs:element name=”name” type=”xs:string”/>

          <xs:element name=”navn” substitutionGroup=”name”/>

          <xs:complexType name=”custinfo”>

          <xs:sequence>

          <xs:element ref=”name”/>

          </xs:sequence>

          </xs:complexType><xs:element name=”customer” type=”custinfo”/>

          <xs:element name=”kunde” substitutionGroup=”customer”/>

          文中的例子都來自w3school.

          ———XSD工具

          XSD工具位于:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin目錄下。XSD工具有很多功能,如下:

          1、將XDR轉換 XSD

          使用精簡 XML 數據架構文件生成 XML 架構。 XDR 為早期基于 XML 的架構格式。

          2、XML轉換XSD

          使用 XML 文件生成 XML 架構。

          3、XSD轉換DataSet

          使用 XSD 架構文件生成公共語言運行庫 DataSet 類。 生成的類為規則 XML 數據提供復雜對象模型。

          4、XSD轉換類

          使用 XSD 架構文件生成運行庫類。 生成的類可以與 System.Xml.Serialization.XmlSerializer 一起使用,來讀寫遵循該架構的 XML 代碼。

          5、類轉換XSD

          使用運行庫程序集文件中的一個或多個類型生成 XML 架構。 生成的架構定義了 System.Xml.Serialization.XmlSerializer 使用的 XML 格式。

          XSD語法格式如下:

          Xsd file.xdr [/outputdir:directory][/parameters:file.xml]

          xsd file.xml [/outputdir:directory] [/parameters:file.xml]

          xsd file.xsd {/classes | /dataset} [/element:element]

          [/enableLinqDataSet] [/language:language]

          [/namespace:namespace] [/outputdir:directory] [URI:uri]

          [/parameters:file.xml]

          Xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename […]][/parameters:file.xml]

          參數說明

          緊跟在xsd命令后面的參數是指定的要轉換的輸入文件。 該輸入文件必須將擴展名指定為下列之一:.xdr、.xml、.xsd、.dll 或 .exe。

          1、 如果指定一個 XDR 架構文件(.xdr 擴展名),則 Xsd.exe 將 XDR 架構轉換為 XSD 架構。 輸出文件與 XDR 架構同名,但擴展名為 .xsd。

          2、 如果指定一個 XML 文件(.xml 擴展名),則 Xsd.exe 從文件中的數據推導出架構并產生一個 XSD 架構。 輸出文件與 XML 文件同名,但擴展名為 .xsd。

          3、 如果指定一個 XML 架構文件(.xsd 擴展名),則 Xsd.exe 將為對應于 XML 架構的運行庫對象生成源代碼。

          4、如果指定一個運行庫程序集文件(.exe 或 .dll 擴展名),則 Xsd.exe 為該程序集中的一個或多個類型生成架構。 可以使用 /type 選項來指定為其生成架構的類型。 輸出架構被命名為 schema0.xsd、schema1.xsd,依此類推。 僅當給定類型使用 XMLRoot 自定義屬性指定命名空間時,Xsd.exe 才生成多個架構。

          常規選項說明:

          /h[elp]

          顯示該工具的命令語法和選項。

          /o[utputdir]:directory

          指定輸出文件的目錄。 此參數只能出現一次。 默認為當前目錄。

          /?

          顯示該工具的命令語法和選項。

          /P[arameters]: file.xml

          從指定的 .xml 文件讀取各種操作模式的選項。 縮寫形式為“/p:”。 有關更多信息,請參見下面的“備注”部分。

          XSD文件選項

          必須為 xsd 文件僅指定下列選項中的一個。

          選項說明

          /c[lasses]

          生成與指定架構相對應的類。 若要將 XML 數據讀入對象,請使用 System.Xml.Serialization.XmlSerializer.Deserializer 方法。

          /d[ataset]

          生成一個從 DataSet 派生的類,該類與指定的架構相對應。 若要將 XML 數據讀入派生類,請使用 System.Data.DataSet.ReadXml 方法。

          還可以為 .xsd 文件指定下列任何選項。

          選項說明 :

          /e[lement]:element

          指定架構中要為其生成代碼的元素。 默認情況下,鍵入所有元素。 可以多次指定該參數。

          /enableDataBinding

          在所有生成的類型上實現 INotifyPropertyChanged 接口以啟用數據綁定。 縮寫形式為“/edb”。

          /enableLinqDataSet

          (縮寫形式:/eld。) 指定可使用 查詢的生成的數據集。 此選項在同時指定 /dataset 選項的情況下使用。 有關更多信息,請參見 LINQ to DataSet Overview 和 Querying Typed DataSets。 有關使用 LINQ 的常規信息,請參見Language-Integrated Query (LINQ)。

          /f[ields]

          生成字段,而不是生成屬性。 默認情況下生成屬性。

          /l[anguage]:language

          指定要使用的編程語言。 從 CS(默認情況下為 C#)、VB (Visual Basic)、JS (JScript) 或 VJS (Visual J#) 中進行選擇。 也可指定實現 System.CodeDom.Compiler.CodeDomProvider 的類的完全限定名

          /n[amespace]:namespace

          為生成的類型指定運行庫命名空間。 默認命名空間為 Schemas。

          /nologo

          取消顯示版權標志。

          /order

          在所有粒子成員上生成顯式順序標識符。

          /o[ut]: directoryName

          指定要放置文件的輸出目錄。默認為當前目錄。

          /u[ri]:uri

          為架構中要為其生成代碼的元素指定 URI。 該 URI(如果存在)應用于使用 /element 選項指定的所有元素。

          DLL和 EXE文件選項

          選項說明:

          /t[ype]:typename

          指定要為其創建架構的類型的名稱。 可以指定多個類型參數。 如果 typename 不指定一個命名空間,則 Xsd.exe 將程序集中的所有類型與指定類型相匹配。 如果 typename 指定一個命名空間,則僅匹配那個類型。 如果 typename 以星號字符 (*) 結尾,則此工具匹配所有以 * 前的字符串開頭的類型。 如果省略 /type 選項,則 Xsd.exe 為程序集中的所有類型生成架構。

          XSD (xml Schema Definition)

          Xml Schema的用途

          1.定義一個Xml文檔中都有什么元素

          2.定義一個Xml文檔中都會有什么屬性

          3.定義某個節點的都有什么樣的子節點,可以有多少個子節點,子節點出現的順序

          4.定義元素或者屬性的數據類型

          5.定義元素或者屬性的默認值或者固定值

          Xml Schema的根元素:

          <?xml version=”1.0″?>

          <xs:schema xmlns:xs=”http://www.w3.org/2001/XMLSchema”表示數據類型等定義來自w3

          targetNamespace=”http://www.w3schools.com”表示文檔中要定義的元素來自什么命名空間

          xmlns=”http://www.w3schools.com”表示此文檔的默認命名空間是什么

          elementFormDefault=”qualified”>表示要求xml文檔的每一個元素都要有命名空間指定

          ……定義主體部分……

          </xs:schema>

          如何定義一個簡單元素

          <xs:element此處表示要定義一個元素

          name=”color”表示要定義元素的名稱

          type=”xs:string”表示要定義元素的數據類型

          default=”red”表示定義元素的默認值

          fixed=”red”/>表示要定義元素的固定值,此元素只可以取“red”值

          以上定義了一個簡單元素,元素實例:<color>red</color>

          如何定義一個屬性

          <xs:attribute

          name=”birthday”表示要定義屬性的名字

          type=”xs:date”表示要定義屬性的數據類型

          default=”2001-01-11”表示要定義屬性的默認值

          fixed=”2001-01-11”表示要定義屬性的固定值

          use=”required”/>表示此屬性是否是必須指定的,即如果不指定就不符合Schema,默認沒有use=”required”屬性表示屬性可有可無

          如何定義元素或者屬性值的限制

          1.最大值最小值限制

          <xs:element name=”age”>

          <xs:simpleType>

          <xs:restriction base=”xs:integer”>

          <xs:minInclusive value=”0″/>大于等于0,<xs: minExclusive>表示最小值但是不包括指定值

          <xs:maxInclusive value=”120″/>小于等于120,<xs: maxExclusive>

          </xs:restriction>

          </xs:simpleType>

          </xs:element>

          2.枚舉限制,指只能在指定的幾個值中取值

          <xs:element name=”car” type=”carType”/>

          <xs:simpleType name=”carType”>

          <xs:restriction base=”xs:string”>

          <xs:enumeration value=”Audi”/>

          <xs:enumeration value=”Golf”/>

          <xs:enumeration value=”BMW”/>

          </xs:restriction>

          </xs:simpleType>

          3.模式(pattern)限制,指字符串的格式必須滿足制定的匹配模式

          例子

          說明

          <xs:element name="letter">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[a-z]"/>
           </xs:restriction>
          </xs:simpleType>

          </xs:element>

          表示只能在小寫字母中取一個值

          <xs:element name="initials">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[A-Z][A-Z][A-Z]"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是三個大寫字母

          <xs:element name="initials">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[a-zA-Z][a-zA-Z][a-zA-Z]"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是三個字母,可以是大寫或小寫的

          <xs:element name="choice">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[xyz]"/>
           </xs:restriction>
          </xs:simpleType>

          </xs:element>

          表示必須是xyz中的一個

          <xs:element name="prodid">
          <xs:simpleType>
           <xs:restriction base="xs:integer">
           <xs:pattern value="[0-9][0-9][0-9][0-9][0-9]"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示數字的范圍是0-99999

          <xs:element name="letter">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="([a-z])*"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是0或者多個小寫字符組成的序列

          <xs:element name="letter">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="([a-z][A-Z])+"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是多個字母。

          <xs:element name="gender">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="male|female"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示是male或者female中的一個

          <xs:element name="password">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:pattern value="[a-zA-Z0-9]{8}"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          表示必須是8個字母數字字符

          4.字符串長度的限制

          <xs:element name=”password”>

          <xs:simpleType>

          <xs:restriction base=”xs:string”>

          <xs:length value=”8″/>

          </xs:restriction>

          </xs:simpleType>

          </xs:element>

          長度必須是8。

          <xs:element name=”password”>

          <xs:simpleType>

          <xs:restriction base=”xs:string”>

          <xs:minLength value=”5″/>

          <xs:maxLength value=”8″/>

          </xs:restriction>

          </xs:simpleType>

          </xs:element>

          表示長度在5-8之間

          6.對于空白字符的限制

          示例

          說明

          <xs:element name="address">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:whiteSpace value="preserve"/>
           </xs:restriction>
          </xs:simpleType>

          </xs:element>

          保留原樣,表示xml處理器不會移除或者替換任何空白字符

          <xs:element name="address">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:whiteSpace value="replace"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          指回車,換行,Tab都會被替換成空格處理

          <xs:element name="address">
          <xs:simpleType>
           <xs:restriction base="xs:string">
           <xs:whiteSpace value="collapse"/>
           </xs:restriction>
          </xs:simpleType>
          </xs:element> 

          去掉多于一個空格,和html中處理方式相同

          如何定義復雜類型

          復雜類型是指定義元素中包含屬性或者子元素的類型

          1.定義只包含子元素的復雜類型

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          2.定義只包含屬性的復雜類型

          <xs:element name=”product” type=”prodtype”/>

          <xs:complexType name=”prodtype”>

          <xs:attribute name=”prodid” type=”xs:positiveInteger”/>

          </xs:complexType>

          3.定義只包含內容的復雜類型

          <xs:element name=”shoesize” type=”shoetype”/>

          <xs:complexType name=”shoetype”>

          <xs:simpleContent>

          <xs:extension base=”xs:integer”>

          <xs:attribute name=”country” type=”xs:string” />

          </xs:extension>

          </xs:simpleContent>

          </xs:complexType>

          4.定義包含內容和子元素混合的復雜類型

          <xs:element name=”letter”>

          <xs:complexTypemixed=”true”>

          <xs:sequence>

          <xs:element name=”name” type=”xs:string”/>

          <xs:element name=”orderid” type=”xs:positiveInteger”/>

          <xs:element name=”shipdate” type=”xs:date”/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          以上定義對應的Xml

          <letter>

          Dear Mr.<name>John Smith</name>.

          Your order <orderid>1032</orderid>

          will be shipped on <shipdate>2001-07-13</shipdate>.

          </letter>

          5.定義包含屬性和子元素的復雜類型

          使用指示器

          在Xsd中的指示器包括

          1.順序指示器

          1)All

          指示子元素可以以任何順序出現,并且每一個元素都必須出現一次

          <xs:element name=”person”>

          <xs:complexType>

          <xs:all>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:all>

          </xs:complexType>

          </xs:element>

          2)Choice

          指示子元素中可以出現一個或者另一個

          <xs:element name=”person”>

          <xs:complexType>

          <xs:choice>

          <xs:element name=”employee” type=”employee”/>

          <xs:element name=”member” type=”member”/>

          </xs:choice>

          </xs:complexType>

          </xs:element>

          3)Sequence

          指示子元素必須按照順序出現

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          2.出現次數指示器minOccurs,maxOccurs

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”full_name” type=”xs:string”/>

          <xs:element name=”child_name” type=”xs:string”

          maxOccurs=”10″ minOccurs=”0″/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          3.組指示器(group Indicators)

          用來定義相關的一組元素

          <xs:group name=”persongroup”>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          <xs:element name=”birthday” type=”xs:date”/>

          </xs:sequence>

          </xs:group>

          <xs:element name=”person” type=”personinfo”/>

          <xs:complexType name=”personinfo”>

          <xs:sequence>

          <xs:group ref=”persongroup”/>

          <xs:element name=”country” type=”xs:string”/>

          </xs:sequence>

          </xs:complexType>

          用來定義一組相關的屬性

          <xs:attributeGroup name=”personattrgroup”>

          <xs:attribute name=”firstname” type=”xs:string”/>

          <xs:attribute name=”lastname” type=”xs:string”/>

          <xs:attribute name=”birthday” type=”xs:date”/>

          </xs:attributeGroup>

          <xs:element name=”person”>

          <xs:complexType>

          <xs:attributeGroup ref=”personattrgroup”/>

          </xs:complexType>

          </xs:element>

          Any關鍵字

          表示可以有任意元素

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          <xs:any minOccurs=”0″/>

          </xs:sequence>

          </xs:complexType>

          </xs:element>

          anyAttribute關鍵字

          <xs:element name=”person”>

          <xs:complexType>

          <xs:sequence>

          <xs:element name=”firstname” type=”xs:string”/>

          <xs:element name=”lastname” type=”xs:string”/>

          </xs:sequence>

          <xs:anyAttribute/>

          </xs:complexType>

          </xs:element>

          substitutionGroup關鍵字

          表示某一個元素和另一個替代元素定義相同

          <xs:element name=”name” type=”xs:string”/>

          <xs:element name=”navn” substitutionGroup=”name”/>

          <xs:complexType name=”custinfo”>

          <xs:sequence>

          <xs:element ref=”name”/>

          </xs:sequence>

          </xs:complexType><xs:element name=”customer” type=”custinfo”/>

          <xs:element name=”kunde” substitutionGroup=”customer”/>

          文中的例子都來自w3school.

          ———XSD工具

          XSD工具位于:C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin目錄下。XSD工具有很多功能,如下:

          1、將XDR轉換 XSD

          使用精簡 XML 數據架構文件生成 XML 架構。 XDR 為早期基于 XML 的架構格式。

          2、XML轉換XSD

          使用 XML 文件生成 XML 架構。

          3、XSD轉換DataSet

          使用 XSD 架構文件生成公共語言運行庫 DataSet 類。 生成的類為規則 XML 數據提供復雜對象模型。

          4、XSD轉換類

          使用 XSD 架構文件生成運行庫類。 生成的類可以與 System.Xml.Serialization.XmlSerializer 一起使用,來讀寫遵循該架構的 XML 代碼。

          5、類轉換XSD

          使用運行庫程序集文件中的一個或多個類型生成 XML 架構。 生成的架構定義了 System.Xml.Serialization.XmlSerializer 使用的 XML 格式。

          XSD語法格式如下:

          Xsd file.xdr [/outputdir:directory][/parameters:file.xml]

          xsd file.xml [/outputdir:directory] [/parameters:file.xml]

          xsd file.xsd {/classes | /dataset} [/element:element]

          [/enableLinqDataSet] [/language:language]

          [/namespace:namespace] [/outputdir:directory] [URI:uri]

          [/parameters:file.xml]

          Xsd {file.dll | file.exe} [/outputdir:directory] [/type:typename […]][/parameters:file.xml]

          參數說明

          緊跟在xsd命令后面的參數是指定的要轉換的輸入文件。 該輸入文件必須將擴展名指定為下列之一:.xdr、.xml、.xsd、.dll 或 .exe。

          1、 如果指定一個 XDR 架構文件(.xdr 擴展名),則 Xsd.exe 將 XDR 架構轉換為 XSD 架構。 輸出文件與 XDR 架構同名,但擴展名為 .xsd。

          2、 如果指定一個 XML 文件(.xml 擴展名),則 Xsd.exe 從文件中的數據推導出架構并產生一個 XSD 架構。 輸出文件與 XML 文件同名,但擴展名為 .xsd。

          3、 如果指定一個 XML 架構文件(.xsd 擴展名),則 Xsd.exe 將為對應于 XML 架構的運行庫對象生成源代碼。

          4、如果指定一個運行庫程序集文件(.exe 或 .dll 擴展名),則 Xsd.exe 為該程序集中的一個或多個類型生成架構。 可以使用 /type 選項來指定為其生成架構的類型。 輸出架構被命名為 schema0.xsd、schema1.xsd,依此類推。 僅當給定類型使用 XMLRoot 自定義屬性指定命名空間時,Xsd.exe 才生成多個架構。

          常規選項說明:

          /h[elp]

          顯示該工具的命令語法和選項。

          /o[utputdir]:directory

          指定輸出文件的目錄。 此參數只能出現一次。 默認為當前目錄。

          /?

          顯示該工具的命令語法和選項。

          /P[arameters]: file.xml

          從指定的 .xml 文件讀取各種操作模式的選項。 縮寫形式為“/p:”。 有關更多信息,請參見下面的“備注”部分。

          XSD文件選項

          必須為 xsd 文件僅指定下列選項中的一個。

          選項說明

          /c[lasses]

          生成與指定架構相對應的類。 若要將 XML 數據讀入對象,請使用 System.Xml.Serialization.XmlSerializer.Deserializer 方法。

          /d[ataset]

          生成一個從 DataSet 派生的類,該類與指定的架構相對應。 若要將 XML 數據讀入派生類,請使用 System.Data.DataSet.ReadXml 方法。

          還可以為 .xsd 文件指定下列任何選項。

          選項說明 :

          /e[lement]:element

          指定架構中要為其生成代碼的元素。 默認情況下,鍵入所有元素。 可以多次指定該參數。

          /enableDataBinding

          在所有生成的類型上實現 INotifyPropertyChanged 接口以啟用數據綁定。 縮寫形式為“/edb”。

          /enableLinqDataSet

          (縮寫形式:/eld。) 指定可使用 查詢的生成的數據集。 此選項在同時指定 /dataset 選項的情況下使用。 有關更多信息,請參見 LINQ to DataSet Overview 和 Querying Typed DataSets。 有關使用 LINQ 的常規信息,請參見Language-Integrated Query (LINQ)。

          /f[ields]

          生成字段,而不是生成屬性。 默認情況下生成屬性。

          /l[anguage]:language

          指定要使用的編程語言。 從 CS(默認情況下為 C#)、VB (Visual Basic)、JS (JScript) 或 VJS (Visual J#) 中進行選擇。 也可指定實現 System.CodeDom.Compiler.CodeDomProvider 的類的完全限定名

          /n[amespace]:namespace

          為生成的類型指定運行庫命名空間。 默認命名空間為 Schemas。

          /nologo

          取消顯示版權標志。

          /order

          在所有粒子成員上生成顯式順序標識符。

          /o[ut]: directoryName

          指定要放置文件的輸出目錄。默認為當前目錄。

          /u[ri]:uri

          為架構中要為其生成代碼的元素指定 URI。 該 URI(如果存在)應用于使用 /element 選項指定的所有元素。

          DLL和 EXE文件選項

          選項說明:

          /t[ype]:typename

          指定要為其創建架構的類型的名稱。 可以指定多個類型參數。 如果 typename 不指定一個命名空間,則 Xsd.exe 將程序集中的所有類型與指定類型相匹配。 如果 typename 指定一個命名空間,則僅匹配那個類型。 如果 typename 以星號字符 (*) 結尾,則此工具匹配所有以 * 前的字符串開頭的類型。 如果省略 /type 選項,則 Xsd.exe 為程序集中的所有類型生成架構。

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          巴西龜的智商相當于人的幾歲?海龜的智商很低,還不到一歲小孩的智商。它們養的時候需要很長時間才能分辨主人,巴西龜是智商最高的龜。如果你買了一只小巴西龜,開始飼養,你必須每天自己喂它,這樣它才能把你和別人區分開來,知道你是主人。因為巴西龜能記住主人,所以能和它培養感情。熟悉之后可以放在家里,休息的時候不會打擾你。我甚至會像狗一樣把它帶在身邊,在你出門后老實待著,等你回來在門口等你。至于更科學、更有根據...

          安家電視劇演員表?羅進,孫立。王自健、田雷、孫嘉麗、楊浩宇、張、克里斯蒂娜、郭濤、席美娟、韓童生、李宗翰、丁嘉麗、白志迪、胡可、郝平、王以哲、梁超、戴樂樂。圖靈、楊坤、丁勇岱、董可飛、王志強、康群志、陳牧陽、遲鵬、王景碩、吳玉芳、閻學晶、劉濤、孫燕、錢杰、孫亮、張雯、劉杰、趙震、魏青、郭家明、馬亮等。安家電視劇演員表?《安家》是一部由安建執導的都市劇,由孫儷、羅晉、孫嘉瑜、張、和王以哲主演。該劇講...

          怎樣在《紅警》里聯機?1. 首先,我們打開紅色警報2游戲,界面如下2。然后選擇選項,出現如下界面3。然后點擊網絡進入設置頁面4。設置目標網絡,兩臺聯機計算機設置為00.00.00。5. 點擊確定進入主界面,點擊網絡,即可加入局域網游戲。1. 鼠標右鍵是一個快速移動的界面。2. 設置team Ctrl 0-9,從當前選定的單元創建一個0-9的團隊。3. 選擇團隊0-9選擇您設置的團隊。4. 添加選擇...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>