ICS75-010
备案号:29445—2010
中华人民共和国石油天然气行业标准SY/T6782-2010
石油行业 XMIL应用指南
Guide of XML application for petroleum industry2010-05-01发布
国家能源局
2010-10-01实施
1范围
2规范性引用文件
术语和定义
XML语法
4.1XML文档结构
4.2XML文档的基本语法
5文档类型定义
5.1DTD概述
5.2DTD元索声明
DTD属性声明.
6XMLSchema
6.1导言…
6.2类型定义..
6.3元素声明…
6.4属性声明
6.5模式注释.
附录A(资料性附录)
附录B(资料性附录)
附录C(资料性附录)
附录D(资料性附录)
标记语言
基于XML数据交换原理
XML模式与关系数据库模式映射方法采出井日数据模型映射
SY/T6782—2010
SY/T6782—2010
随着石油工业信息化的逐步深入,从企业集成的角度来看,企业已由最初的数据集成向专业集成再到部门集成直至最后到企业集成方向发展。从这个发展趋势可以看出,无论是专业内部集成还是部门间的集成或者是企业间的集成都离不开数据交换。对于石油工业来讲,如何对所交换的数据有规范可循是一个很重要的问题。近几年,随着W3C组织XML系列规范发布与在各领域中的应用,作为一种通用的置标语言很快得到各个领域的重视,这些组织纷纷基于XML置标语言来构建企业数据交换标准。像世界著名的石油开放软件联盟(POSC)近些年也发布了基于XML的系列规范,其中的通用并场信息传输规范(WITSMIL)、生产优化数据交换规范(PRODML)等就是典型的规范。制定这些规范的目的是将钻并信息、完井并信息以及生产优化信息在应用之间实现实时交换。可以看出,XML置标语言必将作为石油行业未来实现数据交换的一个重要规范,因此提出本标准。本标准的附录A、附录B、附录C和附录D是资料性附录。本标准由石油信息与计算机应用专业标准化技术委员会提出并归口。本标准负责起草单位:中国石油勘探开发研究院、大庆石油学院。本标准主要起草人:袁满、高雪、李鹏飞。1范围
石油行业XML应用指南
本标准规定了构建XML文档的一些概念、规则与方法。本标准适用于石油行业各级信息系统数据集成与数据交换。2规范性引用文件
SY/T6782—2010
下列文件中的条款通过本标准的引用而成为本标准的条款。凡是注日期的引用文件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本标准,然而,鼓励根据本标准达成协议的各方研究是否可使用这些文件的最新版本。凡是不注日期的引用文件,其最新版本适用于本标准。
ExtensibleMarkupLanguage(XML)1.0(fourthedition)W3CRecommendation16august2006:http://www.w3.org/TR/xm/规范W3CXMLSpecificationDTD:http://www.w3.org/TR/xhtml1/dtds.html规范井场信息传输规范WITS:Wellsiteinformationtransferspecification生产数据交换标准ProdutionXML:standard:(http://wuw.prodml.org)XMLSchema推荐标准:http://www.w3.org/TR/xmlschema-0/http://www.w3.org/TR/xmlschema-1/http://www.w3.org/TR/xmlschema-2/3术语和定义
下列术语和定义适用于本标准。3.1
数据对象dataobject
一个文档。
解析实体parseentity
由XML文字(字符数据、卷标或两者皆有)所组成的实体。3.3
模式schema
个基于XML的语法或Schema规范,负责定义和描述XML文档的结构和内容模式。它可以定义XML文档中存在哪些元索和元索之间的关系,并且可以定义元素和属性的数据类型。3.4
标记tag
用于表示元素的记号。
元素element
XML文档内容的基本单元。从语法上讲,一个元素由一个开始标记、一个结尾标记以及括在标记之间的文本字符数据组成。
SY/T6782—2010
文档实体documententity
也称为文档体,是指文档实例的集合。3.7
标头prolog
XML或XMLSchema的前导说明部分。3.8
名称空间namespace
W3C推荐标准提供的一种统一命名XML文档中的元素和属性的机制。使用名称空间可以明确标识和组合XML文档中来自不同标记词汇表的元素和属性,避免了名称之间的冲突。3.9
文档类型定义documenttypedefinition(DTD)一套关于标记符的语法规则。
XML解析器
XMLparse
一个可以读入一个文档并分析其结构的软件包。3.11
样式表cascadingstylesheet
用于(增强)控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。3.12
数据交换dataexchange
一个或多个计算机软件系统之间传递数据的过程。4XML语法
个数据对象(指文档)要成为规范的XML文档必须满足两个约束,即规范和有效性,规范应满足三个条件:
一整体上是一个标记文档,即文档中包含一个以上元索,并且根元索必须包含其他元素。满足www.w3.org/TR/REC-XML中的所有规范约束。一文档中直接或间接应用的解析实体都是规范的。有效性应满足两个条件:
文档和一个文档类型定义[documenttypedefinition(DTD)]或者模式(Schema)相关联。文档遵守其中定义的规则。
4.1XML文档结构
XMIL文档语法比较简单,XML文档由许多不同作用的标记构成。有些标记起声明作用,有些起注释作用,有些起标记数据的作用。4.1.1XML的逻辑结构
一个XML文档由五个部分组成:第一部分是XML必要声明部分,第二部分是DTD声明(如果存在),第三部分是处理指令,第四部分是文档实体,最后一部分是树状结构。4.1.1.1XML必要声明部分
该部分也称为XML标头信息(prolog),它是XML规范中规定的每一份XML文档中所必须的一项声明,并且必须放在XML文档的第一行。示例:
<?XMLversion=\1.0\encoding=\gb2312\standalone=yes\>2
SY/T6782—2010
4.1.1.2DTD声明
这部分主要用于验证XML文档的合法性。在DTD中,对XML文档中出现的每一个标记与其属性加以定义,明确文档中标记之间的关系、标记数据类型以及标记数量等。有两种DTD,一种是内部DTD,另种是外部DTD,下面给出内部DTD示例。示例:
<!DOCTYPEDOCUMENT[
4.1.1.3处理指令部分
该部分是XML处理程序必须扫描的指令,被称为处理指令。处理指令含有应用程序所使用的标记信息,处理指令格式以“<”开始,并以“?”结束。示例:
该示例表示用样式表文件mystyle.xsl来显示XML文档,其中type属性用于选择样式,而href属性表示样式表文件的路径。
XML必要声明部分、DTD声明部分和处理指令部分统称为文档头部。4.1.1.4文档实体部分
文档实体也称文档体,它实际上是文档实例的集合。这是XMI文档中真正存放数据的位置,它是XML文档的数据部分。文档实体是XMIL文档的主体,在应用之间传翰XML文档的目的就是要交换这部分数据。
4.1.1.5树状结构部分
逻辑结构是指概念上的XML文档,可以将XML文档看作是由包含大量信息的数据按照层次关系组织起来的结构。其中的数据可能会作为元索或者属性出现在XML文档中,形成-个树状结构,其中树状结构的顶端是顶层元索,也称根元素。4.1.2XML的物理结构
就物理结构而言,可以将XML文档看成是由许多独立的物理文件组成,这些文件在XML中被称为“实体”,因此,一个XML文档实际上是由一组“实体”构成。4.1.2.1XML实体
和逻辑结构中的根元素类似,在物理结构中所有的XML文档也存在一个“文档实体”或称根实体,这个实体封装了整个XML文档。也就是说,这个由XMI本身给出的根实体指出整个XMIL文档的内容。在这个结构中,一个实体可以包含对其他实体的引用,而被引用的实体又可以包含对另外一些实体的引用。
在DTD中定义的实体包含两种类型:通用实体和参数实体。通用实体即是在XML文档中用于存储文本数据的实体。
它在DTD中定义的格式为:
实体名由用户来命名,它表示要替换的文本数据的名称,而文本内容则是用户所指定的实体名要替换的具体文本数据。如果是对外部文件的引用,那么该外部文件的路径由参数file_path指定为外部文件的磁盘路径,或者是该文件的URL。参数实体定义格式为:
www.bzxz.net4.1.2.2实体的使用方法
SY/T6782—2010
实体是一个被命名的标记数据块,它可以是一个数据串,也可以是一个完整的文件。实体可以包含已解析的数据或未解析的数据。已解析的数据由字符组成,其中一些字符组成文本数据,另一些字符组成标记。未解析数据则是那些不进行语法解析的数据。实体使用包含两部分:实体声明和实体引用。实体声明在DTD中完成,实体引用则是引用一个已在实体声明中声明过的实体,其引用形式为&entity_name。示例:
!ELEMENTDOCUMENT(wellNotice)了>
05-24A
50-029-22204-01-00development
oil
oi&OPEN_CLOSE;ADL-028325
解析器在对XML文档解析时,就会直接将“&.OPEN_CLOSE;”替换成“active”。4.1.2.3XML中定义的实体引用
XML已经预先定义了5个实体引用,用来代表在XML文档字符数据中出现的特定符号,这些实体引用见表1。
实体引用
&-amp;
'
4.2XML文档的基本语法
XML文档字符数据中使用的特定符号所代表的字符
XML文档由字符数据和标记组成,其编写格式类似于HTML,但是语法要求比HTML更为严格。
4.2.1XML元素
4.2.1.1标记
SY/T6782-2010
XML文档中基本的数据单位就是标记(tag),XML中标记可分为开始标记、结尾标记和空标记。标记在XML文档中以“<”符号开始,以“》”符号结束,“<”和“>”符号称为分隔符,用于将标记从文档的字符数据中区分出来。开始标记以“<”符号开始,后面跟有标记名,其语法格式为:
各参数说明如下:
tag_name:标记名,即为XML元素名,如果标记名是英文,必须注意区分大小写。attribute_name:属性名称。
attribute,value:属性值,需要用单引号或双引号包起来,若有多个属性,使用空格分隔。结尾标记以“”符号开始,后面也跟标记名,到第一个“>”符号标记结束。其语法格式为:
tag_name为结尾标记名称,它需要和开始标记相同,而且要和开始标记成对出现。示例:
05-24A
50-029-22204-01-00development
oil
oilactiveADL-028325
4.2.1.2XML元素
元素(element)是XML文档内容的基本单元。从语法上讲,一个元素由一个开始标记、一个结束标记以及在标记间的文档字符数据组成。其语法格式为:data_contentXML标记只是XML元索的一部分,data_content是元索的内容,它可以是字符数据,也可以包含其他XML元素。data_content可以没有内容,这类元素称为空元素。其语法格式为:或
在创建元素时还要遵循如下基本规则,只有符合这些规则的元素才是符合XML语法的元素,规则如下:
a)一份XML文档中至少要有一个元素。b)一份XML文档中有且只有一个根元素。由于XML文档本身的结构是树状的,所以一棵树只能有一个根元索,其他元素都属于该根元素的子元素。示例:
05-24A
50-029-22204-01-00developnent
oil
oilSY/T67822010
activeADL-028325
此处,welldentification是根元素,name,numAPI,kind,purpose,originalWellPurpose,wellStatus以及fieldName均是wellIdentification的子元素。c)XML命名规则:
1)XML元素命名可使用英文大小写字符(a~z,A~Z)、数字(0~9)、下划线字符、句点字符以及短横线字符,整个名称中不能有空格。2)元素名称不能以数字字符开头。3)XML区分大小写。
4.2.1.3XML置标规则
XML置标规则如下:
标记不可缺少。
XML文档中至少要有一个元素。
标记区分大小写。
标记必须严格配对,所有元素要有结尾标记。标记要正确嵌套,标记之间不能交叉。4.2.2XML属性
XML属性是对标记的进一步描述和说明,展性的目的是用于在元素中提供额外的信息。a)XML元素可以有自已的屑性,元素的每个属性是一个名称一数值对。b)XML元素拥有的属性可以为一个到多个,属性的名称不能重名。需要注意的是元素内可以嵌套子元素,属性则不允许。
XML中属性设置的语法格式为:
element_content
示例:
ApplicationforSundryApprovalamend
abandon
Form10-403...
4.2.3XML语法的其他内容
4.2.3.1 CDATA
XML解析器对字符“<”和“&”非常敏感,如果有一大段文本,其中有很多“<”和“&”但又不用做标记,可用CDATA标记标出,这样XML解析器就可不对这段文本解析。其语法格式为:
There are some characters that theparser donot parse them in CDATA tagJ>
XML注释
SY/T6782—2010
注释为文件和数据提供说明,注释中的内容被XML解析器所忽略。XML文档注释以<!comment_content-->来标识。注释需要注意以下几点:注释语句不能出现在XML声明之前。一注释不允许出现在标记中,而是单独的语句。—注释不能嵌套使用。
5文档类型定义
5.1DTD概述
使用XML结构化的组织数据,只保证良好的格式是不够的,必须保证文档的有效性。文档类型定义[documenttypedefinitions(DTD)]就是为保证XML文档的有效性而引人的约束机制。DTD文件的声明语法不同于XML的语法,DTD文件开头必须使用专用的关键字以告诉解析器这个区段属于DTD声明。其声明语法为:<!DTD定义的内容>
root_node表示与XML文档中对应的根元素名称。DTD定义的内容包括:-DTD元素声明。
--DTD属性声明。
-DTD实体声明。
一DTD标记声明。
XML中使用的DTD有三种方式:一是直接将DTD插放在XML文件中和XML元索素放在一起;二是使用外部独立的DTD文件;三是使用混合的方式,XML文档同时使用上述两种方式,用以建立更复杂的DTD。
5.1.1内部DTD
DTD指令直接写在XML文档中,其所定义的约束范围只能应用于此XML文档。内部DTD语法如下:
root_node为XML根元素名称。
示例:
<!ELEMENTpermitID(#PCDATA)>
SY/T6782—2010
Report of SundryWellOperationsunknown
Form10-457
5.1.2外部DTD
内部DTD是将DTD指令直接插人到XML文档中。另一种方法是将DTD的指令独立地存储成一个文件,然后在XML文档中指定所使用的DTD文件,这就是外部DTD。引用外部DTD文件时,要在XML文档的前导区声明所要使用的DTD文件。外部DTD文件在XML文档中引用的语法格式为:
<!DOCTYPEroot_nodeSYSTEM\filename.dtd\>参数说明如下:
SYSTEM:是XML保留字,代表所引用的外部DTD文件是由个人创建,而不是国际标准。root_name:XML文档的根标记。filename.dtd:外部DTD文件的路径。除了使用SYSTEM外,还可以使用PUBLIC关键字,它代表所引用的DTD是国际标准的,其引用语法如下:
<!DOCTYPEroot_nodePUBLIC”+|-//组织名称//所引用DTD文件的描述//编写DTD所使用的语系””URL”>
其中,“+”表示该组织获得ISO的认证,“-”表示该组织没有获得ISO的认证。例如:
5.2DTD元素声明
DTD元素(element)声明是声明XML元索的语法,包含元素的标记、内含的子元素和元素内容数据,它同时也声明了XML文件的元素架构。5.2.1DTD元素声明的语法
XML文档按照树状结构进行数据的组织,在树状结构中,除末端的叶子元素之外,中间是由不断分支的枝干元素所组织,所以DTD中元素声明对应为叶子元素声明和枝干元素声明。5.2.1.1叶子元素声明
语法格式为:
element_name:XML文档中对应元素名称。data_type:元素数据容的类型。5.2.1.2枝干元素声明
语法格式为:
其中:
element_name:XML文档中对应元素名称。child_elementl,child_element2:element_name元素的子元素。8
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。