XML Schema(XSD)简明教程

合集下载

Schema

Schema
这种对XML数据访问的特别的面向对象程序设计实现主要为微软──对XML Schema发展的主要贡献者──所 倡导。转换一份XML文件到自行数据类型感知对象在某些软件设计部分相当有利。然而批评家争论这同时暗中破 坏了开放性──XML的主要特征──并且它偏向于兼容原生于微软偏好的编程语言的资源类型。
另,从XML Schema数据类型继承出去的(以及肇因于XML Schema数据类型的)限制、这些数据类型与其他 XML Schema间受限的搭配、以及在其他W3C规格里这些数据类型的相依性,是许多XML软件发展师的争论焦点。
“XML Schema”在2001年5月成为W3C推荐标准。由于“XML Schema”作为一种W3C的推荐标准的名字与广义 的XML Schema语言存在名称上的混淆,用户社区的一部分人采用了“WXS”来称呼它,用户社区的另一部分人采 用“XSD”(XMLSchemaDefinition首字母缩略字)来称呼它。W3C发布的1.1标准采用了“XSD”作为官方称呼。
当一个实例文档针对一个schema来验证有效性时(这一过程称为assessment),用来验证有效性的schema 可以作为参数提供过验证器,也可以在实例文档中作为两种特殊属性之一直接提供:
"xsi"是名字空间"/2001/XMLSchema-instance"的传统前缀。
XML Schema Documents通常有文件扩展名".xsd". XSD还没有专门的互联网媒体类型,因此按照 RFC 3023 使用"application/xml"或"text/xml".
Schema
数据库中的Schema
01 简介
03 历史 05 component

xmlschema建立xml文档

xmlschema建立xml文档

xmlschema建⽴xml⽂档web-app_2_5.xsd<?xml version="1.0" encoding="UTF-8"?><!--传智播客Schema教学实例⽂档。

模拟servlet2.5规范,如果开发⼈员需要在xml使⽤当前Schema约束,必须包括指定命名空间。

格式如下:<web-app xmlns="/web-app_2_5"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/web-app_2_5 web-app_2_5.xsd"version="2.5">--><xsd:schema xmlns="/2001/XMLSchema"targetNamespace="/web-app_2_5"xmlns:xsd="/2001/XMLSchema"xmlns:tns="/web-app_2_5"elementFormDefault="qualified"><xsd:element name="web-app"><xsd:complexType><xsd:choice minOccurs="0" maxOccurs="unbounded"><xsd:element name="servlet"><xsd:complexType><xsd:sequence><xsd:element name="servlet-name"></xsd:element><xsd:element name="servlet-class"></xsd:element></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="servlet-mapping"><xsd:complexType><xsd:sequence><xsd:element name="servlet-name"></xsd:element><xsd:element name="url-pattern" maxOccurs="unbounded"></xsd:element></xsd:sequence></xsd:complexType></xsd:element><xsd:element name="welcome-file-list"><xsd:complexType><xsd:sequence><xsd:element name="welcome-file" maxOccurs="unbounded"></xsd:element></xsd:sequence></xsd:complexType></xsd:element></xsd:choice><xsd:attribute name="version" type="double" use="optional"></xsd:attribute></xsd:complexType></xsd:element></xsd:schema>web.xml<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/web-app_2_5" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/web-app_2_5 web-app_2_5.xsd"version="2.5"><servlet><servlet-name>helloServlet</servlet-name><servlet-class>xxxxxxxxxx</servlet-class></servlet><servlet-mapping><servlet-name>helloServlet</servlet-name><url-pattern>/hello</url-pattern></servlet-mapping></web-app>。

最简单的Schema文档

最简单的Schema文档

跟我学XML Schema(1):最简单的Schema文档如何写一个最简单的XML Schema文档呢?首先,我们写出一个最简单的XML文档.hello.xml-------------------<?xml version="1.0"?><greeting>Hello World!!</greeting>(一个根元素:greeting;且这个元素不含属性,无子元素,内容是字符串。

)hello.xsd----------<?xml version="1.0"?><xsd:schema xmlns:xsd="/2001/XMLSchema"><xsd:element name="greeting" type="xsd:string"/></xsd:schema>XML Schema文档后缀名是.xsd,完全符合XML语法,根元素是schema,命名空间xmlns:xsd="/2001/XMLSchema,用元素<element>定义实例文档中的元素,如greeting。

跟我学XML Schema(2):含子元素的稍复杂Schema文档假设实例文档是如下的:customer.xml-----------<customer><name>teiki</name><address>No.237, Road Waitan, Shanghai</address></customer>则可以写出以下的XML Schema文档:customer.xsd----------------1: <?xml version="1.0"?>2: <xsd:schema xmlns:xsd="/2001/XMLSchema">3: <xsd:element name="customer">4: <xsd:complexType>5: <xsd:sequence>6: <xsd:element name="name" type="xsd:string"/>7: <xsd:element name="address" type="xsd:string" />8: </xsd:sequence>9: </xsd:complexType>10: </xsd:element>11: </xsd:schema>实例文档customer.xml中,<customer>元素含有两个子元素,所以我们在Schema文档中采用ComplexType来定义该元素。

XMLSchema.xsd文件约束xml文档格式内容

XMLSchema.xsd文件约束xml文档格式内容

XMLSchema.xsd⽂件约束xml⽂档格式内容XMLSchema.xsd ⽂件,⽤来约束xml内容格式的。

<?xml version="1.0" encoding="utf-8"?><xs:schema id="XMLSchemaLettle"targetNamespace="/XMLSchemaLettle.xsd"elementFormDefault="qualified"xmlns="/XMLSchemaLettle.xsd"xmlns:mstns="/XMLSchemaLettle.xsd"xmlns:xs="/2001/XMLSchema"><xs:element name="note"><xs:complexType><xs:sequence><xs:element name="heading" type="xs:string" minOccurs="0" maxOccurs="1" default="headstring"></xs:element><xs:element name="body" type="xs:string" minOccurs="0" maxOccurs="1" default="content"/><xs:element name="aletter" minOccurs="0" maxOccurs="1" default="a"><!--只能输⼊⼀个字符,且是⼤⼩写字母中的⼀个--><xs:simpleType><xs:restriction base="xs:string"><xs:pattern value="[a-zA-Z]"/></xs:restriction></xs:simpleType></xs:element><xs:element name="age" minOccurs="0" maxOccurs="1"><!--只能指定⼀个范围内的值--><xs:simpleType><xs:restriction base="xs:integer"><xs:minInclusive value="1"/><xs:maxInclusive value="120"/></xs:restriction></xs:simpleType></xs:element><xs:element name="gender" minOccurs="0" maxOccurs="1" default="male"><!--正则表达⽰限制输⼊规则,这样能验证,但不⾃动提⽰--><xs:simpleType><xs:restriction base="xs:string"><xs:whiteSpace value="replace"/><!--移除所有空⽩字符(换⾏、回车、空格以及制表符)--><xs:pattern value="male|female"/><xs:minLength value="4"/><!--最⼩字符数--><xs:maxLength value="6"/><!--最⼤字符数--></xs:restriction></xs:simpleType></xs:element><xs:element name="password" minOccurs="0" maxOccurs="1" default="12345678"><xs:simpleType><xs:restriction base="xs:string"><xs:length value="8"/><!--固定长度--></xs:restriction></xs:simpleType></xs:element><xs:element name="from" type="xs:string" minOccurs="0" maxOccurs="1" default="pukuimin"/><xs:element name="to" minOccurs="0" maxOccurs="unbounded"><xs:complexType><xs:sequence minOccurs="1" maxOccurs="1"><!--⼀个元素下的⼦元素--><xs:element name="full_name" minOccurs="1" maxOccurs="1"><!--只能指定⼀个固定的值,vs⾥按Ctrl+J 就能显⽰可以指定的值--><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="pu"/><xs:enumeration value="shu"/><xs:enumeration value="liu"/></xs:restriction></xs:simpleType></xs:element><xs:element name="child_name" type="xs:string" minOccurs="1" maxOccurs="1"/></xs:sequence><xs:anyAttribute /><!--允许指定⾃定义属性--></xs:complexType></xs:element><xs:element name="to2"><xs:complexType><xs:attributeGroup ref="persongroup"/></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element><xs:attributeGroup name="persongroup"><!--⼀个元素中的很多属性--><xs:attribute name="firstname" default="pu"><xs:simpleType><xs:restriction base="xs:string"><xs:enumeration value="pu"/><xs:enumeration value="shu"/><xs:enumeration value="liu"/></xs:restriction></xs:simpleType></xs:attribute><xs:attribute name="lastname" type="xs:string" default="km"/><xs:attribute name="birthday" type="xs:date" default="2012-08-27"/></xs:attributeGroup></xs:schema>在vs2010中:⽣成的⽰例xml⽂件内容:<?xml version="1.0" encoding="utf-8"?><note xmlns="/XMLSchemaLettle.xsd"><heading>headstring</heading><body>content</body><aletter>a</aletter><age>1</age><gender>male</gender><password>12345678</password><from>pukuimin</from><to><!-- Attribute Wild card could not be matched. Generated XML may not be valid. --> <full_name>pu</full_name><child_name>child_name1</child_name></to><to><!-- Attribute Wild card could not be matched. Generated XML may not be valid. --> <full_name>shu</full_name><child_name>child_name2</child_name></to><to><!-- Attribute Wild card could not be matched. Generated XML may not be valid. --> <full_name>liu</full_name><child_name>child_name3</child_name></to><to2 firstname="pu" lastname="km" birthday="2012-08-27" /></note>如果不符合约束要求,⽂档就会显⽰警告。

根据Schema写出XML文档四部曲

根据Schema写出XML文档四部曲

根据Schema写出XML⽂档四部曲Schema约束⽂档本⾝就是⼀个XML⽂档,扩展名为xsd难点:XML⽂档的根元素怎么写?如下4步曲:a、⾸先看Schema⽂档,找到根元素<?xml version="1.0"encoding="UTF-8"?><书架></书架>b、思考:书架来⾃于哪个名称空间?看Schema⽂档,targetNamespace就是名称空间。

⽤xmlns关键字(xmlns名称空间声明)来声明我的元素来⾃哪个名称空间(xmlns:xml namespace)<?xml version="1.0"encoding="UTF-8"?><itcast:书架 xmlns:itcast=""></itcast:书架>c、思考:名称空间与哪个xsd⽂件对应呢?使⽤schemaLocation关键字来关联名称空间和xsd的对应关系<?xml version="1.0"encoding="UTF-8"?><itcast:书架 xmlns:itcast=""schemaLocation="book.xsd"></itcast:书架>剩下的任务就交给eclipse⾃动⽣成就⾏了。

案例如下:已知Schema约束⽂档如下,写出对应的xml⽂档<?xml version="1.0" encoding="UTF-8" ?><xs:schema xmlns:xs="/2001/XMLSchema"targetNamespace=""elementFormDefault="qualified"><xs:element name='书架' ><xs:complexType><xs:sequence maxOccurs='unbounded' ><xs:element name='书' ><xs:complexType><xs:sequence><xs:element name='书名' type='xs:string' /><xs:element name='作者' type='xs:string' /><xs:element name='售价' type='xs:integer' /></xs:sequence></xs:complexType></xs:element></xs:sequence></xs:complexType></xs:element></xs:schema>xml⽂档如下:<?xml version="1.0" encoding="UTF-8"?><itcast:书架 xmlns:itcast=""xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation=" book.xsd"><itcast:书><itcast:书名>JavaScript⽹页开发</itcast:书名><itcast:作者>张孝祥</itcast:作者><itcast:售价>28</itcast:售价></itcast:书></itcast:书架>最终版本:以秒杀的⽅式建⽴。

第5章XMLSchema结构

第5章XMLSchema结构

5.3 Schema元素的声明
设置默认值和固定值:给空元素增加值
属性设置:default 与fixed只能选择其一 default默认值:若元素为空,填入默认值。 但不同数据类型对“空”的解释不同,并不是 都填充默认值。
string数据类型: 不填入默认值 integer数据类型: 填入默认值 元素的属性xsi:nil=“true”:不填入默认值
第5章 XML Schema结构
Schema概述 Schema元素的声明 Schema的属性声明 Schema的数据类型 Schema的名称空间 Schema的使用 建立Schema文档
5.1 Schema概述
XML Schema是2001年5月正式发布的W3C的推荐标 准,是全球公认的XML环境下首选的数据建模工具 DTD存在的缺陷:
5.3 Schema元素的声明
局部元素:元素声明只出现在复杂类型定义的内部
<?xml version=“1.0” encoding=“gb2312”> <xsd:schema xmlns:xsd=“/2001/XMLSchema> <xsd:complexType name=“book”> <xsd:sequence> <xsd:element name=“title” type=“xsd:string”/> <xsd:element name=“author” type=“xsd:string” minOccuurs=0 maxOccurs=“unbouded/> <xsd:element name=“price” type=“xsd:integer”/> </xsd:sequence> </xsd:complexType> </xsd:schema>

第5章_XML Schema 结构(二)

第5章_XML Schema 结构(二)

复杂元素:complextype:有子元素或属性
<element name=“ ”> 匿名的复杂类型 <complextype [name=“XXX”]> <sequence> <element name=“ ” type=“ ”/> <element name=“ ” type=“ ”/> </sequence> </complextype> </element >
name type minoccurs maxoccurs fixed default >=0的整数 >=0的整数,或unbounded
Байду номын сангаас
<xsd:element name=“author” type=“xsd:string” minoccurs=“0” maxoccurs=“unbounded”>
复杂类型(通过complexType定义)
常用的几种限定
限定(restriction)用于为XML元素或属性定义可接受的值,这 些限定也被称为面facet。
P100 表5-4 XML Schema面的定义
数值范围 数值位数 字符串范围 枚举类型
格式: < facet name
value=“*****”>
XMLSPY 中Schema的操作
阅读 Servlet2.5的web.xml文档规范( /xml/ns/javaee/webapp_2_5.xsd),根据该XMLSchema画出web.xml文档 中各元素、属性之间的嵌套关系图
回P90页【例5.2】
book
isbn
title

3.Schema

3.Schema


XML文档根元素书写形式如下:
<rootElement xmlns="(namespace)" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="(namespace) (location)"> …… </rootElement>
Namespace对引用自定义类型的影响
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="/2001/XMLSchema" targetNamespace="/demo" xmlns:n="/demo"> <xs:element name="parent" type="n:customType" /> <xs:complexType name="customType"> <xs:sequence> <xs:element name="child" /> </xs:sequence> </xs:complexType> </xs:schema>
<lastname>Smith</lastname> <age>28</age> <dateborn>1980-03-27</dateborn>
默认值:<xs:element name="color" type="xs:string" default="red"/> 固定值:<xs:element name="color" type="xs:string" fixed="red"/>
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。

如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。

㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。

(2 列出开发利用方案编制所依据的主要基础性资料的名称。

如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。

对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。

二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。

2、国内近、远期的需求量及主要销向预测。

㈡产品价格分析
1、国内矿产品价格现状。

2、矿产品价格稳定性及变化趋势。

三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。

2、矿区矿产资源概况。

3、该设计与矿区总体开发的关系。

㈡该设计项目的资源概况
1、矿床地质及构造特征。

2、矿床开采技术条件及水文地质条件。

相关文档
最新文档