XML Schema(XSD)简明教程
- 格式:pdf
- 大小:4.65 MB
- 文档页数:60
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>。
跟我学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内容格式的。
<?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⽂档,扩展名为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:书架>最终版本:以秒杀的⽅式建⽴。
第4章在XML⽂档中使⽤Schema补充第333章XML中的名称空间学习⽬标名称空间的⽬的是为了有效地区分名字相同的标记,当两个标记的名字相同时,可以通过⾪属于不同的名称空间相互区分。
通过本章学习,要了解名称空间的基本概念,掌握名称空间的声明⽅法和使⽤⽅法,熟悉默认名称空间的声明⽅法和使⽤⽅法,掌握名称空间的作⽤范围。
XML允许⾃定义标记,那么在⼤型⽽复杂的XML⽂档中,不可避免地会遇到标记名称相同但其代表的意义却不同的现象。
尤其是在将多个XML⽂档组合使⽤时,名字冲突的情况更会容易发⽣。
为了解决标记重名这⼀问题,XML规范提供了名称空间(Namespaces)机制。
333.1 名称空间的基本概念名称空间就是在逻辑上相关的任何⼀组名称,在名称空间中,每个名称都必须是惟⼀的,并且是按照名称空间的规则来构建的。
在具体介绍名称空间之前,让我们看⼀个简单的XML⽂档。
【例333-1】存储教⼯信息和家属信息的XML⽂档。
<教⼯资料><教⼯><姓名>苏青<性别>男<电话>12345678<职称>副研究员<家属><姓名>王静<电话>87654321在这个⽂件中,<姓名>和<电话>两个元素在不同的上下⽂中使⽤了两次,⼀次是作为教⼯的资料,另⼀次是作为家属的,这两个标记应⽤的范围不同,⽽标记名却⼀样,尽管我们可以轻松地识别出它们的区别,但却会造成电脑解析时的混淆。
1.名称空间的名字和前缀名称空间的⽬的是有效地区分名字相同的标记。
名称空间在XML⽂档中的具体应⽤是在标记名前添加⼀个全球惟⼀的标识符,在可能发⽣混淆的最外层标记中声明,这样相同的标记就因为有个惟⼀的标识符⽽可以区分了。
为了保证这个标识符的惟⼀性,W3C推荐使⽤统⼀资源标识符(Uniform Resource Identifier,URI)作为名称空间的名字。
1 Xml 命名空间1.1 XML 命名空间 XML NamespacesXML 命名空间提供避免元素命名冲突的方法。
XML 命名空间属性被放置于元素的开始标签 之中,并使用以下的语法: xmlns:namespace-prefix="namespaceURI" 举例 <f:table xmlns:f="/furniture"> <h:table xmlns:h="/TR/html4/">当命名空间被定义在元素的开始标签中时, 所有带有相同前缀的子元素都会与同一个命名空 间相关联。
注释: 标示命名空间的地址不会被解析器用于查找信息。
其惟一的作用是赋予命名空间一个 惟一的名称。
不过,很多公司常常会作为指针来使用命名空间指向实际存在的网页,这个网 页包含关于命名空间的信息。
1.2 默认的命名空间(Default Namespaces)为元素定义默认的命名空间可以让我们省去在所有的子元素中使用前缀的工作。
xmlns="namespaceURI" 举例 <table xmlns="/TR/html4/">2 Xml Schema 命名空间2.1 常用命名空间schema 元素引用了三个最常使用的命名空间: xmlns="/2001/XMLSchema" xmlns:xsd="/2001/XMLSchema-datatypes" xsd 是 XML Schema datatypes 的意思 xmlns:xsi="/2001/XMLSchema-instances" xsi 是 XML Schema Instances 的意思 第二和第三个属性用 XML 命名空间来标识 W3C 中的两个 XML schema 规范。
XML简明教程什么是XML元素?X ML是一种标识语言,一组用来创建描述数据的语法标签的规则集。
一个XML元素是由开始标签、结束标签以及标签之间的数据构成的。
开始和结束标签用来描述标签之间的数据。
标签之间的数据被认为是元素的值。
例如,在下面一个X ML 元素的例子中,元素"dir ector"的值是"Ed Wo od"。
<dir ector>Ed W ood</direc tor>元素名("dire ctor")允许你把"Ed W ood"这个值标出来,这样你就能把这些数据同另外类似的数据区分开来。
例如,有可能另一个元素的值也是"Ed Wo od"。
<act or>Ed Wood</act or>由于每个元素都有不同的标签名,所以你能很容易把上面两个元素的值区别开来。
如果从语义上没有办法把数据标出来,两个有同样值的元素会混淆起来。
属性一个元素可以包含一个或多个属性,属性是一个由“=”隔开的名称值,如:<CITYZIP="01085">Wes tfiel d</CI TY> 在上面的例子中,ZI P="01085"是元素<CI TY>的一个属性。
属性用来给一个元素添加附加的、次要的信息,通常是元信息,属性还可以使用缺省值,而元素却不能这样做。
元素的每一个属性可以以任意顺序进行说明,但仅能说明一次。
此外,XML标签对大小写敏感,因此以下这三个是不同的元素。
XML校验学习之⼀:使⽤XSD模式验证XML数据XML⽂档包括了元素、属性和基本数据类型的值。
在全章中,将使⽤⼀个名为Authors.xml的XML⽂档,该⽂档显⽰于程序清单5-1。
程序清单5-1 Authors.xml⽂件<?xml version="1.0"?><authors><author><au_id>172-32-1176</au_id><au_lname>White</au_lname><au_fname>Johnson</au_fname><phone>408 496-7223</phone><address>10932 Bigge Rd.</address><city>Menlo Park</city><state>CA</state><zip>94025</zip><contract>true</contract></author><author><au_id>213-46-8915</au_id><au_lname>Green</au_lname><au_fname>Marjorie</au_fname><phone>415 986-7020</phone><address>309 63rd St. #411</address><city>Oakland</city><state>CA</state><zip>94618</zip><contract>true</contract></author></authors>XSD模式定义了元素、属性以及它们之间的关系。
矿产资源开发利用方案编写内容要求及审查大纲
矿产资源开发利用方案编写内容要求及《矿产资源开发利用方案》审查大纲一、概述
㈠矿区位置、隶属关系和企业性质。
如为改扩建矿山, 应说明矿山现状、
特点及存在的主要问题。
㈡编制依据
(1简述项目前期工作进展情况及与有关方面对项目的意向性协议情况。
(2 列出开发利用方案编制所依据的主要基础性资料的名称。
如经储量管理部门认定的矿区地质勘探报告、选矿试验报告、加工利用试验报告、工程地质初评资料、矿区水文资料和供水资料等。
对改、扩建矿山应有生产实际资料, 如矿山总平面现状图、矿床开拓系统图、采场现状图和主要采选设备清单等。
二、矿产品需求现状和预测
㈠该矿产在国内需求情况和市场供应情况
1、矿产品现状及加工利用趋向。
2、国内近、远期的需求量及主要销向预测。
㈡产品价格分析
1、国内矿产品价格现状。
2、矿产品价格稳定性及变化趋势。
三、矿产资源概况
㈠矿区总体概况
1、矿区总体规划情况。
2、矿区矿产资源概况。
3、该设计与矿区总体开发的关系。
㈡该设计项目的资源概况
1、矿床地质及构造特征。
2、矿床开采技术条件及水文地质条件。