国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页网络编程Xml编程 → XML Schema学习笔记

XML Schema学习笔记

我要评论 2010/02/16 18:51:12 来源:国语自产精品视频在线看 编辑:绿色资源站 [ ] 评论:0 点击:806次

1、复杂类型【lèi xíng】和【hé】🛠简单类【jiǎn dān lèi】🛂型【xíng】之间最根本的区别【de qū bié】就是【jiù shì】:复杂类型【lèi xíng】的🖋内容中【nèi róng zhōng】可以包【kě yǐ bāo】含其他【hán qí tā】元素【yuán sù】🚳,也可以【yě kě yǐ】🛥带有属性【xìng】(Attribute),但简单类【jiǎn dān lèi】🛂型【xíng】既不能包含子【hán zǐ】🐇元素【yuán sù】🚳,也不能【yě bú néng】带有任【dài yǒu rèn】何属性【xìng】。
<xsd:complexType name="CNAddress" >
<xsd:sequence>
<xsd:element name="name"type="xsd:string"/>
<xsd:element name="street" type="xsd:string"/>
<xsd:element name="city"type="xsd:string"/>
<xsd:element name="zip"type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
</xsd:complexType>

2、element存在【cún zài】🍱约束【yuē shù】🦎:element可以通【kě yǐ tōng】过其minOccurs和【hé】🐜maxOccurs两个【gè】属🎙性来约【xìng lái yuē】💨束【shù】🦎元素【yuán sù】🚳实例存【shí lì cún】在【zài】的个【gè】😪数【shù】🕋,这两个【gè】属🎙性【xìng】的缺省值【zhí】⛑都是1,表【biǎo】示默📕认情况👑下此元素【yuán sù】🚳在【zài】🍱XML实例文【shí lì wén】🧡档中必须出现一次【cì】📀。

3、attribute存在【cún zài】🍱约束【yuē shù】🦎:元素属【yuán sù shǔ】🤰性【xìng】也可以【yě kě yǐ】🛥通过attribute的use属性来【shǔ xìng lái】约💨束【shù】🦎出现一次【cì】📀或根本不出现;use属性【xìng】的🤕取值可【qǔ zhí kě】👀以是🏍required,optional,prohibited三个【gè】🏎值【zhí】🚤,缺省(默认【mò rèn】)值【zhí】是🔜optional.

4、element和【hé】🐜attribute都有一🌷个【gè】🏎default和【hé】🐜fixed属性【xìng】,针对【zhēn duì】🔭element来书,只有当element实例为空时才【kōng shí cái】采用【yòng】此default值【zhí】🚤,而attribute是当实例不提【lì bú tí】供此attribute时才采【shí cái cǎi】用【yòng】此default值【zhí】🚤,因此对attribute而言,只有其【zhī yǒu qí】🎥use值【zhí】是🔜optional时default值【zhí】🚤才有意义,而且对【ér qiě duì】element和【hé】🐜attribute来说【lái shuō】fixed和【hé】🐜default两个【gè】属🎙性【xìng】不能同时存在【cún zài】🍱,否则会【fǒu zé huì】🍛出现错误。

5、直接定【dìng】🚪义在【zài】🏁schema元素下【yuán sù xià】🤤,即schema元素【yuán sù】🚳的顶级子元素【yuán sù】💡的element和【hé】🐜attribute都是全【dōu shì quán】🦄局的,称之为🆔全局元【quán jú yuán】素🚳和【hé】🐜全局属性【xìng】,你在【zài】其🔭他类型【lèi xíng】♉定【dìng】🚪义中可【yì zhōng kě】以直接引用【yòng】。

6、派生新【pài shēng xīn】类型【lèi xíng】🥉有两种方式:第一种🕐就是【jiù shì】直💶接从其【jiē cóng qí】他类型【lèi xíng】♉中扩展(继承🆙)而来【ér lái】🥅,另外一种就是【jiù shì】🤐通过对🎚已有类⤴型【xíng】进行限定【dìng】🛐性【xìng】约束【yuē shù】🦎而来【ér lái】🥅。
如【rú】🐙:以下有三种通📽过限定【dìng】🛐性【xìng】约束【yuē shù】🦎定【dìng】义的🕷新类型【xīn lèi xíng】🥉:
通过值【tōng guò zhí】🚤范围限定【dìng】🛐:
<xsd:simpleType name="myInteger">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="10000"/>
<xsd:maxInclusive value="99999"/>
</xsd:restriction>
</xsd:simpleType>
使用模【shǐ yòng mó】式匹配👴限定【dìng】🛐:
<xsd:simpleType name="SKU">
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{3}-[A-Z]{2}"/>
</xsd:restriction>
</xsd:simpleType>
使用【yòng】枚🔠举方式限定【dìng】🛐:
<xsd:simpleType name="CNCity">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="BeiJing"/>
<xsd:enumeration value="NanChang"/>
<xsd:enumeration value="ShangHai"/>
</xsd:restriction>
</xsd:simpleType>

7、原子类【yuán zǐ lèi】型【xíng】🥉(不可【kě】分割的类型【lèi xíng】🥉,象【xiàng】🔑string,integer等系统【děng xì tǒng】内建的类型【lèi xíng】🥉)、列表类【liè biǎo lèi】型【xíng】🌱、联合类型【hé lèi xíng】🥉合【hé】起来统一称为简🤨单类型【dān lèi xíng】🤓。在【zài】🍱Schema中有🎖NMTOKENS、IDREFS、ENTITIES三种内建的列表类【liè biǎo lèi】型【xíng】🌱,你也可以【yě kě yǐ】🛥从已有的【yǒu de】💋简单类【jiǎn dān lèi】🛂型来创【xíng lái chuàng】建list(列表【biǎo】)类型【lèi xíng】🥉,但你不能从已有的【yǒu de】💋list类型【lèi xíng】和【hé】🛠复杂类型【lèi xíng】来🏵创建列【chuàng jiàn liè】表【biǎo】🌌(list)类型【lèi xíng】🥉。
如【rú】🐙:
<xsd:simpleType name="listOfMyIntType">
<xsd:list itemType="myInteger"/>
</xsd:simpleType>
在【zài】🍱XML实例文【shí lì wén】🧡档中列表类【liè biǎo lèi】型【xíng】🌱的值【zhí】是🆔通过空【tōng guò kōng】格来进【gé lái jìn】🏢行分隔的,如【rú】果声😭明了一个【gè】🏎listOfMyIntType元素【yuán sù】🚳,其值【qí zhí】🚤可【kě】能是:
<listOfMyInt>20003 15037 95977 95945</listOfMyInt>

8、有几个【gè】🏎方面的😯元素【yuán sù】🚳可【kě】以应用【yòng】🎍于【yú】list类型【lèi xíng】来🏵进行约束【yuē shù】🦎,它们是:length、minLength、maxLength和【hé】🐜enumeration,如【rú】🐙:
<xsd:simpleType name="USStateList">
<xsd:list itemType="USState"/>
</xsd:simpleType>
<xsd:simpleType name="SixUSStates">
<xsd:restriction base="USStateList">
<xsd:length value="6"/>
</xsd:restriction>
</xsd:simpleType>
注【zhù】:针对【zhēn duì】列🥥表类型【biǎo lèi xíng】🌱要千万注【zhù】意成员是【yuán shì】string类型【lèi xíng】的🖋,因为【yīn wéi】string类型【lèi xíng】🥉中的空【zhōng de kōng】格【gé】😤和【hé】🐜列表类【liè biǎo lèi】型【xíng】🌱的分割符空格【gé】会造成部分混淆。
9、对元素【yuán sù】🌠的定【dìng】🚪义可【kě】以采用【yòng】通过🏝指定【dìng】其🚅type属性为【shǔ xìng wéi】已定义【yǐ dìng yì】的🕷属性【xìng】的🤕方式,也可一【yě kě yī】采用【yòng】匿👼名定【dìng】义💅类型【lèi xíng】的🖋方式,如【rú】🐙:
采用【yòng】类型【lèi xíng】🥉定【dìng】🚪义:
<xsd:element name=”comment” type=”xsd:string”>
采用【yòng】匿👼名定【dìng】义💅:
<xsd:element name=”quantity”>
<xsd:simpleType>
<xsd:restriction base=”xsd:positiveInteger”>
<xsd:maxExclusive value=”100” />
</xsd:restriction>
</xsd:simpleType>
</xsd:element>

10、union(联合【hé】)类型【lèi xíng】🥉表【biǎo】示在【zài】🔢XML实例文【shí lì wén】🧡档中的元素【yuán sù】🚳实例符合【hé】union类型【lèi xíng】🥉定【dìng】义的🕷成员类【chéng yuán lèi】型【xíng】🥉中的一种就可【kě】🌃以了🚤(合法【hé fǎ】🐾),这一点和【hé】🐜C++中的联合类型【hé lèi xíng】🥉有类似的概念【de gài niàn】,如【rú】🐙:
<xsd:simpleType name="addrUnion">
<xsd:union memberTypes="xsd:string integer"/>
</xsd:simpleType>

11、复杂类型【lèi xíng】🥉一般可【yī bān kě】以分为【yǐ fèn wéi】三类:第一类【dì yī lèi】是包含【shì bāo hán】🤬字符内【zì fú nèi】容和【hé】🐜属性但【shǔ xìng dàn】不包🍇含子【hán zǐ】元素【yuán sù】💡;第二类😘是包含【shì bāo hán】🤬属性【xìng】和【hé】🐜子元素【yuán sù】💡但不包🍇含字符😶数【shù】🕋据(字符数【zì fú shù】🕋据包含【jù bāo hán】👇在【zài】子元🐝素中🚟);第三类📰是即包含属性【hán shǔ xìng】和【hé】🐜字符内【zì fú nèi】容又包含子【hán zǐ】🐇元素【yuán sù】🚳的;那么如【rú】🐙何来定【dìng】👨义这三类类型【lèi xíng】🥉呢?针对【zhēn duì】🔭第一类【dì yī lèi】可【kě】⬛以通过【yǐ tōng guò】simpleContent来实现【lái shí xiàn】,第二类😘可以通【kě yǐ tōng】过complexContent来做到,第三类📰只需要将【jiāng】complexType的属性【xìng】mixed设为true就可以【jiù kě yǐ】✍了。具体的🔡例子如【rú】🐙下:

第一种🕐类型【lèi xíng】🥉(从一个【gè】🎀简单类【jiǎn dān lèi】🛂型扩展【xíng kuò zhǎn】而来【ér lái】🥅,增加了【zēng jiā le】🙋属性【xìng】):
<xsd:element name="internationalPrice">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:decimal">
<xsd:attribute name="currency" type="xsd:string"/>

</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>

第二种【dì èr zhǒng】类型🦍(有一个【yǒu yī gè】element和两个attribute构成【gòu chéng】):
<xsd:element name="internationalPrice">
<xsd:complexType>
<xsd:complexContent>
<xsd:element name=”Country” ?type=”xsd:string” />
<xsd:attribute name="currency" type="xsd:string"/>
<xsd:attribute name="value"?type="xsd:decimal"/>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
注意【zhù yì】🏩:在这里【zài zhè lǐ】由于默认情况下缺省😇是🔈complexContent,所以在这里【zài zhè lǐ】简略的写🚊法是【fǎ shì】🔈:
<xsd:element name="internationalPrice">
<xsd:complexType>
<xsd:element name=”Country”type=”xsd:string” />
<xsd:attribute name="currency" type="xsd:string"/>
<xsd:attribute name="value"?type="xsd:decimal"/>
</xsd:complexContent>
</xsd:element>

第三种💳类型🦍:
<xsd:element name="letterBody">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="salutation">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element name="name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="quantity"type="xsd:positiveInteger"/>
<xsd:element name="productName" type="xsd:string"/>
<xsd:element name="shipDate"type="xsd:date" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType&

关键词:XML,Schema,学习笔记

阅读本文后您有什么感想? 已有 人给出评价!

  • 13 欢迎喜欢
  • 13 白痴
  • 13 拜托
  • 13 哇
  • 13 加油
  • 13 鄙视