XML學習筆記(五)Schema語法之簡單類型_Xml教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:淺析XMLHTTPRequest的屬性和方法
      由于現在在公司負責制作標準的靜態頁面,為了增強客戶體驗,所以經常要做些AJAX效果,也學你也和我一樣在,學習AJAX。而設計AJAX時使用的一個重要的技術(工具)就是XMLHTTPRequest對象了。這里海嘯把我學習XMLHTTPRequest對象的一點資料拿出來跟大家一起分

      首先簡單的說一下,Schema中的簡單類型(SimpleType)有三種:SimpleElement(簡單元素)、Attribute(屬性)和Restrictions(約束)。下面逐一介紹這幾種類型。
       

      一、XSD SimpleElement

      所謂SimpleElement是指不包含任何其他元素和屬性,只包含Text(元素間的內容)的元素。這里Text指代的不單單是文本(string),準確地說應該是數據,可以是Schema內置的數據類型的數據,也可以是我們自己創建的數據類型的數據。

      定義一個SimpleElement

      <xs:element name="xxx" type="yyy">
      在這里再次提醒語法,XML是大小寫敏感的,屬性的值要用雙引號括起來。“xxx”是我們要定義的Element的名稱。“yyy”是這個Element的數據類型。XML Schema預定義的內置數據類型有如下一些:
      “xs:string ”、“xs:decimal”、“xs:integer”、“xs:boolean”、“xs:date”、“xs:time”。
      看一個例子,以下是一些在XML中出現的SimpleElement
      <lastname>Refsnes</lastname>
      <age>36</age>
      <dateborn>1970-03-27</dateborn>
      那么在Schema中應該作如下定義,注意Element名稱和數據類型的對應。
      <xs:element name="lastname" type="xs:string"/>
      <xs:element name="age" type="xs:integer"/>
      <xs:element name="dateborn" type="xs:date"/>

      Element的默認值和固定值

      默認值是當Elment中沒有指定一個值時默認提供的值,使用default屬性給出。
      <xs:element name="color" type="xs:string" default="red"/>
       
      固定值同樣是自動給出的,但是XML的用戶不能再為Element指定值,使用fixed屬性給出。
      <xs:element name="color" type="xs:string" fixed="red"/>

       

      二、XSD Attribute

      所有的Attribute都是作為簡單類型的。一個SimpleElement是不能有屬性的。如果一個Element包含有Attriute我們就認為它看作是一個復雜類型(Complex Type)。雖然Attribute不會單獨的出現,但我們仍將它作為一種SimpleType在這里介紹

      定義一個Attribute

      <xs:attribute name="xxx" type="yyy"/>
      “xxx”是Attribute的名稱。“yyy”是Attribute的數據類型?梢允褂肵ML Schema定義的內置數據類型,如:“xs:string ”、“xs:decimal”、“xs:integer”、“xs:boolean”、“xs:date”、“xs:time”。
      例如有如下一個Element,包含一個Attribute
      <lastname lang="EN">Smith</lastname>
      那么定義lang屬性的Schema語句應該如下:
      <xs:attribute name="lang" type="xs:string"/>

      Attribute的默認值和固定值

      同樣可以使用default屬性和fixed屬性為Attrbute指定默認值和固定值。
      默認值
      <xs:attribute name="lang" type="xs:string" default="EN"/>
      固定值
      <xs:attribute name="lang" type="xs:string" fixed="EN"/>

      可選和必需屬性

      屬性默認是可選的(即可以不填)可以使用use屬性來指定屬性是必需的,如下:
      <xs:attribute name="lang" type="xs:string" use="required"/>

      三、XSD Restrictions(約束)

      Restrictions是用來限制(或者說定義)Element或Attribute可接受值的。而對于Element的Restrictions通常又稱為Facets。
      下面通過一些常見的約束例子來說明Restrictions的用法和語法。

      數值型范圍限制

      <xs:element name="age"><xs:simpleType>
      <xs:restriction base="xs:integer">
      <xs:minInclusive value="0"/>
      <xs:maxInclusive value="120"/>
      </xs:restriction>
      </xs:simpleType></xs:element>
      該約束定義age元素的值是整形而且值要在0到120之間。

      枚舉限制

      <xs:element name="car">
      <xs:simpleType>
      <xs:restriction base="xs:string">
      <xs:enumeration value="Audi"/>
      <xs:enumeration value="Golf"/>
      <xs:enumeration value="BMW"/>
      </xs:restriction>
      </xs:simpleType>
      </xs:element>
      這里約束了car的值是string,而且只能為“Audi”、“Golf”和“BMW”中的一個。
      可以使用另一種寫法:
      <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>
      這種寫法的好處是,上面的Restriction不是定義在Element中的,可以被其他的Element很方便的調用。

      使用正則表達式(RegularExpression)約束

      <xs:element name="letter">
      <xs:simpleType>
      <xs:restriction base="xs:string">
      <xs:pattern value="[a-z]"/>
      </xs:restriction>
      </xs:simpleType>
      </xs:element>
      這里<xs:pattern>的value屬性的值是一個正則表達式正則表達式的語法則不再本文介紹的范圍。使用RegularExpression你可以規定任何格式的string約束。

      空格字符(Whitespace Characters)約束

      <xs:element name="address">
      <xs:simpleType>
      <xs:restriction base="xs:string">
      <xs:whiteSpace value="preserve"/>
      </xs:restriction>
      </xs:simpleType>
      </xs:element>
      以上例子對address中的所有空格字符進行保留。關鍵是value="preserve"。XML語法本來就是保留空格的。
      當值為“replace”時
      XML processer會用空間來代替所有的空格字符。
      當值為“collapse”時
      會將連續的空格合并成一個。

      長度約束

      <xs:element name="password">
      <xs:simpleType>
      <xs:restriction base="xs:string">
      <xs:length value="8"/>
      </xs:restriction>
      </xs:simpleType>
      </xs:element>
      以上例子限定了password元素的長度為8。當然也可以使用 <xs:minLength value="?"/>和<xs:maxLength value="?"/>來限定最長最短值。

       

       

      分享:解讀Ajax清理緩存
      今天做一個密碼初始化的功能,不想初始化了在返回原來頁面,于是就用ajax實現,初始化頁面包括一個生成隨機密碼的函數,當點擊“初始化密碼”的時候,可以得到返回的密碼,但是當點擊第二次,第三次,都是第一次返回的那個密碼。而且數據庫也不更新了。 于是

      來源:模板無憂//所屬分類:Xml教程/更新時間:2010-02-05
      相關Xml教程