XSD使用.docx
- 文档编号:10045232
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:26
- 大小:22.44KB
XSD使用.docx
《XSD使用.docx》由会员分享,可在线阅读,更多相关《XSD使用.docx(26页珍藏版)》请在冰点文库上搜索。
XSD使用
DTD实例
DOCTYPENEWSPAPER[
ELEMENTNEWSPAPER(ARTICLE+)>//NEWSPAPER子元素必须在"ARTICLE"元素内出现至少一次。
ELEMENTARTICLE(HEADLINE,BYLINE,LEAD,BODY,NOTES)>//当子元素按照由逗号分隔开的序列进行声明时,这些子元素必须按照相同的顺序出现在文档中。
ELEMENTHEADLINE(#PCDATA)>//只有PCDATA的元素通过圆括号中的#PCDATA进行声明
ELEMENTBYLINE(#PCDATA)>
ELEMENTLEAD(#PCDATA)>
ELEMENTBODY(#PCDATA)>
ELEMENTNOTES(#PCDATA)>
ATTLISTARTICLEAUTHORCDATA#REQUIRED>//
ATTLIST元素名称属性名称属性类型默认值>合法
ATTLISTARTICLEEDITORCDATA#IMPLIED>//合法
ATTLISTARTICLEDATECDATA#IMPLIED>
ATTLISTARTICLEEDITIONCDATA#IMPLIED>
ENTITYNEWSPAPER"VervetLogicTimes">
ENTITYPUBLISHER"VervetLogicPress">//
ENTITYCOPYRIGHT"Copyright1998VervetLogicPress">]>
XML对DTD的引用
xmlversion="1.0"?
>
DOCTYPEnoteSYSTEM"
....
XMLSchema
XMLSchema是基于XML的DTD替代者。
XMLSchema可描述XML文档的结构。
XMLSchema语言也可作为XSD(XMLSchemaDefinition)来引用。
XMLSchema:
定义可出现在文档中的元素
定义可出现在文档中的属性
定义哪个元素是子元素
定义子元素的次序
定义子元素的数目
定义元素是否为空,或者是否可包含文本
定义元素和属性的数据类型
定义元素和属性的默认值以及固定值
对XMLSchema的引用
xmlversion="1.0"?
>
xsi="http: //www.w3.org/2001/XMLSchema-instance" xsi: schemaLocation="note.xsd">.... 1、简易的类型 (1)、XSD元素 简易元素指那些仅包含文本的元素。 它不会包含任何其他的元素或属性。 定义简易元素的语法: elementname="xxx"type="yyy"/> 此处xxx指元素的名称,yyy指元素的数据类型。 最常用的类型是: •xs: string•xs: decimal•xs: integer•xs: boolean•xs: date•xs: time 简易元素的默认值和固定值 elementname="color"type="xs: string"default="red"/>//默认值 elementname="color"type="xs: string"fixed="red"/>//固定值 (2)、XSD属性 简易元素无法拥有属性。 假如某个元素拥有属性,它就会被当作某种复合类型。 但是属性本身总是作为简易类型被声明的。 定义属性的语法是: attributename="xxx"type="yyy"/> 在此处,xxx指属性名称,yyy则规定属性的数据类型 这是带有属性的XML元素: 这是对应的属性定义: attributename="lang"type="xs: string"/> 属性的默认值和固定值 attributename="lang"type="xs: string"default="EN"/> attributename="lang"type="xs: string"fixed="EN"/> 可选的和必需的属性 在缺省的情况下,属性是可选的。 如需规定属性为必选,请使用"use"属性: attributename="lang"type="xs: string"use="required"/> (3)、XSD限定 限定(restriction)用于为XML元素或者属性定义可接受的值。 对XML元素的限定被称为facet。 对值的限定 下面的例子定义了带有一个限定且名为"age"的元素。 age的值不能低于0或者高于120: elementname="age"> simpleType> restrictionbase="xs: integer"> minInclusivevalue="0"/> maxInclusivevalue="120"/> restriction> simpleType> element> 对一组值的限定 如需把XML元素的内容限制为一组可接受的值,我们要使用枚举约束(enumerationconstraint)。 下面的例子定义了带有一个限定的名为"car"的元素。 可接受的值只有: Audi,Golf,BMW: elementname="car"> simpleType> restrictionbase="xs: string"> enumerationvalue="Audi"/> enumerationvalue="Golf"/> enumerationvalue="BMW"/> restriction> simpleType> element> 上面的例子也可以被写为: elementname="car"type="carType"/> simpleTypename="carType"> restrictionbase="xs: string"> enumerationvalue="Audi"/> enumerationvalue="Golf"/> enumerationvalue="BMW"/> restriction> simpleType> 注释: 在这种情况下,类型"carType"可被其他元素使用,因为它不是"car"元素的组成部分。 对一系列值的限定 如需把XML元素的内容限制定义为一系列可使用的数字或字母,我们要使用模式约束(patternconstraint)。 下面的例子定义了带有一个限定的名为"letter"的元素。 可接受的值只有小写字母a-z其中的一个: elementname="letter"> simpleType> restrictionbase="xs: string"> patternvalue="[a-z]"/> restriction> simpleType> element> 下一个例子定义了带有一个限定的名为"initials"的元素。 可接受的值是大写字母A-Z其中的三个: elementname="initials"> simpleType> restrictionbase="xs: string"> patternvalue="[A-Z][A-Z][A-Z]"/> restriction> simpleType> element> 下一个例子也定义了带有一个限定的名为"initials"的元素。 可接受的值是大写或小写字母a-z其中的三个: elementname="initials"> simpleType> restrictionbase="xs: string"> patternvalue="[a-zA-Z][a-zA-Z][a-zA-Z]"/> restriction> simpleType> element> 下一个例子定义了带有一个限定的名为"choice的元素。 可接受的值是字母x,y或z中的一个: elementname="choice"> simpleType> restrictionbase="xs: string"> patternvalue="[xyz]"/> restriction> simpleType> element> 下一个例子定义了带有一个限定的名为"prodid"的元素。 可接受的值是五个阿拉伯数字的一个序列,且每个数字的范围是0-9: elementname="prodid"> simpleType> restrictionbase="xs: integer"> patternvalue="[0-9][0-9][0-9][0-9][0-9]"/> restriction> simpleType> element> 对一系列值的其他限定 下面的例子定义了带有一个限定的名为"letter"的元素。 可接受的值是a-z中零个或多个字母: elementname="letter"> simpleType> restrictionbase="xs: string"> patternvalue="([a-z])*"/> restriction> simpleType> element> 下面的例子定义了带有一个限定的名为"letter"的元素。 可接受的值是一对或多对字母,每对字母由一个小写字母后跟一个大写字母组成。 举个例子,"sToP"将会通过这种模式的验证,但是"Stop"、"STOP"或者"stop"无法通过验证: elementname="letter"> simpleType> restrictionbase="xs: string"> patternvalue="([a-z][A-Z])+"/> restriction> simpleType> element> 下面的例子定义了带有一个限定的名为"gender"的元素。 可接受的值是male或者female: elementname="gender"> simpleType> restrictionbase="xs: string"> patternvalue="male|female"/> restriction> simpleType> element> 下面的例子定义了带有一个限定的名为"password"的元素。 可接受的值是由8个字符组成的一行字符,这些字符必须是大写或小写字母a-z亦或数字0-9: elementname="password"> simpleType> restrictionbase="xs: string"> patternvalue="[a-zA-Z0-9]{8}"/> restriction> simpleType> element> 对空白字符的限定 如需规定对空白字符(whitespacecharacters)的处理方式,我们需要使用whiteSpace限定。 下面的例子定义了带有一个限定的名为"address"的元素。 这个whiteSpace限定被设置为"preserve",这意味着XML处理器不会移除任何空白字符: elementname="address"> simpleType> restrictionbase="xs: string"> whiteSpacevalue="preserve"/> restriction> simpleType> element> 这个例子也定义了带有一个限定的名为"address"的元素。 这个whiteSpace限定被设置为"replace",这意味着XML处理器将移除所有空白字符(换行、回车、空格以及制表符): elementname="address"> simpleType> restrictionbase="xs: string"> whiteSpacevalue="replace"/> restriction> simpleType> element> 这个例子也定义了带有一个限定的名为"address"的元素。 这个whiteSpace限定被设置为"collapse",这意味着XML处理器将移除所有空白字符(换行、回车、空格以及制表符会被替换为空格,开头和结尾的空格会被移除,而多个连续的空格会被缩减为一个单一的空格): elementname="address"> simpleType> restrictionbase="xs: string"> whiteSpacevalue="collapse"/> restriction> simpleType> element> 对长度的限定 如需限制元素中值的长度,我们需要使用length、maxLength以及minLength限定。 本例定义了带有一个限定且名为"password"的元素。 其值必须精确到8个字符: elementname="password"> simpleType> restrictionbase="xs: string"> lengthvalue="8"/> restriction> simpleType> element> 这个例子也定义了带有一个限定的名为"password"的元素。 其值最小为5个字符,最大为8个字符: elementname="password"> simpleType> restrictionbase="xs: string"> minLengthvalue="5"/> maxLengthvalue="8"/> restriction> simpleType> element> 数据类型的限定 限定 描述 enumeration 定义可接受值的一个列表 fractionDigits 定义所允许的最大的小数位数。 必须大于等于0。 length 定义所允许的字符或者列表项目的精确数目。 必须大于或等于0。 maxExclusive 定义数值的上限。 所允许的值必须小于此值。 maxInclusive 定义数值的上限。 所允许的值必须小于或等于此值。 maxLength 定义所允许的字符或者列表项目的最大数目。 必须大于或等于0。 minExclusive 定义数值的下限。 所允许的值必需大于此值。 minInclusive 定义数值的下限。 所允许的值必需大于或等于此值。 minLength 定义所允许的字符或者列表项目的最小数目。 必须大于或等于0。 pattern 定义可接受的字符的精确序列。 totalDigits 定义所允许的阿拉伯数字的精确位数。 必须大于0。 whiteSpace 定义空白字符(换行、回车、空格以及制表符)的处理方式。 2、复杂的类型 (1)、XSD元素 复合元素指包含其他元素及/或属性的XML元素,有四种类型的复合元素: 空元素、包含其他元素的元素、仅包含文本的元素、包含元素和文本的元素。 请看这个复合XML元素,"employee",仅包含其他元素: A、通过命名此元素,可直接对"employee"元素进行声明,就像这样: elementname="employee"> complexType> sequence> elementname="firstname"type="xs: string"/> elementname="lastname"type="xs: string"/> sequence> complexType> element> B、"employee"元素可以使用type属性,这个属性的作用是引用要使用的复合类型的名称: elementname="employee"type="personinfo"/> complexTypename="personinfo"> sequence> elementname="firstname"type="xs: string"/> elementname="lastname"type="xs: string"/> sequence> complexType> 您也可以在已有的复合元素之上以某个复合元素为基础,然后添加一些元素,就像这样: elementname="employee"type="fullpersoninfo"/> complexTypename="personinfo"> sequence> elementname="firstname"type="xs: string"/> elementname="lastname"type="xs: string"/> sequence> complexType> complexTypename="fullpersoninfo"> complexContent> extensionbase="personinfo"> sequence> elementname="address"type="xs: string"/> elementname="city"type="xs: string"/> elementname="country"type="xs: string"/> sequence> extension> complexContent> complexType> (2)、XSD复合空元素 空的复合元素不能包含内容,只能含有属性。 elementname="product"> complexType> attributename="prodid"type="xs: positiveInteger"/> complexType> element> (3)、XSD仅含元素 “仅含元素”的复合类型元素是只能包含其他元素的元素。 XML元素,"person",仅包含其他的元素: 您可在schema中这样定义"person"元素: elementname="person"> complexType> sequence> elementname="firstname"type="xs: string"/> elementname="lastname"type="xs: string"/> sequence> complexType> element> (4)、XSD仅含文本 仅含文本的复合元素可包含文本和属性。 此类型仅包含简易的内容(文本和属性),因此我们要向此内容添加simpleContent元素。 当使用简易内容时,我们就必须在simpleContent元素内定义扩展或限定,就像这样: elementname="某个名称"> complexType> simpleContent> extensionbase="basetype"> .... extension> simpleContent> complexType> element> 或者: elementname="某个名称"> complexType> simpleContent> restrictionbase="basetype"> .... restriction> simpleContent> complexType> element> 提示: 请使用exten
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XSD 使用