版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件接口定义语言的设计和建模中国最大的论文知识平台浙江科技学院信息与电子工程学院2007届本科毕业设计(论文)-PAGEI-ABSTRACTInterfaceDefinitionLanguagemeansthedeklarativeformallanguageandcontainsalanguagesyntaxforthedescriptionofinterfacesofthesoftwarecomponent.Withtheirassistanceobjectscanbedescribedwiththepossibleparametersanddatatypes.Itservespurelythedescription,nottheformulationofalgorithms.DuetothemodulesofthesystemVICOSOC501IdevelopedanappropriateinterfacedefinitionlanuagewithXMLinthiswork,i.e.aself-definingXMLschematoproduce.WiththestructurethisschemaonecangenerateXMLdocuments,whichdescribethedataofthesystem.TosimpleproduceandoprateXMLdocuments,ImadestillanotherDesignofthegraphicaluserinterface.OnitthemodelofVICOSOC501,whichcorrespondstothesystemXMLschema,canbeschematicallycreated.AndthroughtheoperationsonthegraphicaluserinterfaceonecanalsooperatetheappropriateXMLdocument.InadditionIstilldefinedanotherXMLschema,inordertostoretheinformationaboutgraphicaluserinterfaceanddataofthesystemwithitsstructureintheXMLdocument.Thelastpartofthethesis(diploma)concernsitselfwiththeprototyping.Hierprototypesaredescribed.Keywords:XMLdocument,XMLschema,prototype缩写APIApplicationProgrammingInterfaceADMAdministratorCOMCommunicatorCSSCascadingStyleSheetsDOMDocumentObjectModelDTDDocumentTypeDefinitionERMEntityRelationshipModelGMLGeneralizedMarkupLanguageGUIGraphicalUserInterfaceHTMLHyperTextMarkupLanguageMMIManMachineInterfaceORMObjectRoleModelPAKProzessanschlusskonzentratorPIProcessingInstructionSAXSimpleAPISGMLStandardGeneralizedMarkupLanguageTTCOTimetableComparisionUMLUnifiedModelingLanguageVICOSOCVehicleandInfrastructureControlandOperatingSystem/OperationManagementSystemCommuter/SubwayW3CWorldWebConsortiumXMLeXternsibleMarkupLanguageXSLExtensibleStylesheetLanguage绪论动机为了降低VICOSOC501系统的复杂性,我们把它分割成了很多程序块。这些程序块只能使用其他程序块的公开接口,而其他程序块的内部实现细节是不可见的。如果有必要,这些程序块也可以调用数据库的数据。在每个程序块里面有一个核心和附加模块,他们之间也是通过接口进行通信的。对于将来开发和处理系统来说,信息(例如:结构,数据,属性,关系等)的描述和存储是很必要的,这样的话以后可以比较方便地读取这些信息。为了达到这个目的,需要设计一个基于元语言的数据标准,那么就可以不依赖于平台和编程语言交换数据,以及根据不同的使用目的用不同的形式表示数据。还有一个要求,就是能简单自动地生成基于数据标准的XML文档,并且对它进行处理。目的从上述的动机我们可以引出如下目的。此毕业设计的目的在于为用于VICOSOC501模块上的软件设计接口定义语言。而在这里我选择了用XML来设计自己的标准,即设计自定义的模式。此外,还要设计一个工具,借助于它的图形用户界面可以建立系统模型,并且能由此生成和处理XML文档。相反的,也可以从现有的XML文档生成和更新系统模型。另外,所有界面的信息和系统数据都必须被记录下来,那么当下次再次打开文件的时候,原来的模型和数据保持原状。为了展示这个软件的功能和运作方式,应该制作相关的原型。论文构成理论基础在第二章里介绍了XML的基础知识,语法,建模,解析器和表示。而第三章里包含了VICOSOC501系统的基本原理,主要是硬件和软件的结构,这些都是稍后设计和制作原型的基础。需求此毕业设计的所有需求将在第四章中被列举出来,主要是关于系统XML文档,GUI设计和记录的需求。分析和设计在总结了所有的需求之后,第五章里将会展开分析和设计,同时也借助UML设计来做进一步阐释。另外也选择出了合适的XML解析器。制作原型紧接着会在第六章里为这个软件制作原型。附录在附录里有系统XML模式,记录XML模式和一个XML文档的例子。另外参考资料也会列举出来。XML基础理论XML的意思是扩展标识语言,它是一种表达和交换结构化以及没有结构化的数据的标准[C-1]。介绍由来和使用目的图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s11XML的产生1969年出现了第一个名为通用标记语言(GML)的现代标记语言。GML是一种用于描述任意数据集结构的语言,通过GML可以描述其他语言的句法和语法。在1986年,源自GML的标准通用标记语言(SGML)被规定为一种保存和交换数据的国际标准。SGML是一种非常强大和复杂的标记语言,同时也是其他语言系列开发的起始点。XML就是那些从SGML导出的语言之一。它是1996年被开发出来的,并于1998年的二月被标准化。不同于SGML的是,XML由比较简单明显的句法组成。通过XML可以用任意的编程语言生成任意结构的数据,然后可以把这些数据和运用了不同编程语言的不同系统里的用户进行交换。使用目的对数据交换来说,用XML是一种合适的描述数据方法:对于处理可交换数据和跨越不同操作系统限制来说,XML是一种很好的方式。借助XML可以在用户和程序之间不依赖于平台进行数据交换。通过XML可以借助自定义的标记来构造自己的语言。XML是一种定义自己标记语言的元语言,可以在DTD或XML模式里明确地定义它的语法。所有的扩展,包括原来的XML文档,都可以用这种自定义的语言来写,而不是用XML本身。XML文档是可读的,而且对于人类来说也是比较好理解的。当XML文档本来就是数据时,就绝对不能忽略它的表示的可能性。根据不同的目的,可以用样式对XML文档进行不同的转换和表示。性质接下来要介绍XML的重要性质。基于XML的结构,这些性质包括正确性,有效性以及结构,内容和表示的分离。另外还有简单,开放和可扩展性。1)正确性每个符合规范和句法的XML文档会被认为是正确的。在XML1.0中定义了一系列的属性来检测文档的正确性。以下列举了其中的一部分:大小写的区别XML文档始于一个已定义的XML声明每个XML文档有且仅有一个根元素,它不包含在其他元素的内容里所有元素必须包含一个开始标签和一个结束标签,或者定义为空元素元素必须有层次地嵌套在一起,不允许破坏嵌套的顺序。这意味着,一个元素如果在另一个元素中开始,就必须在这个元素中结束。所有的属性值要写在双引号或者单引号里面对于一个元素来说,属性的名字不能出现超过一次2)有效性XML文档的有效性可以由以下条件得出,文档是正确的以及具有符合文档的语法规则,DTD或者XML模式就是这样一种规则。依据DTD或XML模式来验证文档的结构:解析器可以检验是否所有元素和所有附加属性都符合在DTD或XML模式中定义的结构。由此要检验下面的属性:解析器可以验证标签的结构和数量是否正确和有效语句组成了DTD或XML模式对DTD有效性的验证不包括对数据类型和属性值可信度的验证对XML模式有效性的验证包括了对数据类型的验证不包括对内容或者对正确格式的验证3)结构,内容和表示的分离XML标记描述了数据的内容和结构,但不涉及数据的表示。这样就可以使同一个文档根据不同目的借助XML工具(比如XSL或CSS)进行不同的表示。4)简单开发XML的主要目的之一就是规定一个尽可能简单的标准。XML文档基于一个非常严格的准则,使XML文档对于人和机器都浅显易读。除此之外,XML准则非常的小,这可以节省很多处理时间。DTD或XML模式可以通过标准的程序被生成,同样也可以很方便地生成XML解析器,特别是只为了检验XML句法的时候。5)开放在不同平台之间必须是可以自由灵活地交换用XML定义的数据,这就导致了需要一个开放的标准。XML文档要以文本的形式被保存,而且可以在每一个平台上被编辑。每一个人都可以对一个正确的XML文档进行解析,如果它使用了DTD或XML模式,也可以被验证。6)可扩展性在XML的范畴里,可扩展性代表着发展和定义自己的准则来为文档定义自己的标记语言。这些符合文档的XML准则可以被XML工具解析,处理,编辑或者表示。另外,它还可以通过另外的标准来扩展,比如说关于XML文档的表示,参考和连接。文档结构原则上一个XML文档的组成部分分为三组:结构,表示和内容。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s12XML文档的结构,表示和内容文档的结构是由结构元素反映出来的。在XML里这些结构元素就是标签,在它们之间可以加入内容。例如:<标题>...</标题>这些结构标签是如何排列的,以及它们是如何嵌套的,都在DTD或XML模式中给出了。而关于XML文档的表示则使用了一种样式语言(比如:XSL或CSS)。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s13XML文档的结构一个正确的XML文档由三部分组成:开始声明(可选择的)每个XML文档都始于一个开始声明。它指明了XML数据的开始,描述了文档中使用了哪种字符编码以及包含了这个文档对于解析器和运用来说很重要的信息。版本(必要的),目前使用的只有1.0版本。编码(可选择的),指的是文档的编码。若没有给出,则默认值是UTF-8。Standlone(可选择的),这个参数说明了是否给这个文档分配了一个外部的标记说明。主体它由一个或多个相互嵌套并且包含任意字符的元素组成。结束声明(可选择的)它由注释,处理指示(PI)和/或空格组成。但在XML里没有特殊的标记是用来当文档结尾的,很多时候会把文档元素的结束标签当做是结尾。因此,使用者可以在读完这个标签后就关闭连接,而不需要对任何的结束声明做处理。元素XML的基本组成单元是元素。它由一个开始标签和一个结束标签包围着,之间是元素的内容。开始标签位于一对尖括号里面(<标签>),而结束标签在开始尖括号之后还有一个斜杠(</标签>)。开始标签和结束标签必须一致。但有一些元素的内容也可以为空,这时就只有一个标签,它的结束尖括号前有一个斜杠(<空标签/>)。在元素的内容里也允许其他的元素,字符串,PI和注释存在。通过包含其他元素可以实现文档的结构嵌套。元素的树状结构和由此引起的父子关系是XML的一个重要特征。内容既包含了文本又包含了子元素的元素,我们称之为混合元素。在下面这些例子里我们先介绍了一个带元素类型的元素(地点),然后是一个空元素(fax)和一个元素的简单嵌套(地址)。<地点>Braunschweig</地点><fax/><地址><地点>Braunschweig</地点><邮编>38118</邮编><街道>GoslarscheStrasse</街道><号码>19</号码></地址>属性属性就描述了元素内容,但是不属于内容,同时也描述了内容的性质的信息。它有属性名和属性值组成。属性值必须位于单引号(‘)或双引号(“)之间。出现的形式如下:属性名=“属性值“。在开始标签或空标签内允许有任意多个属性,但是所有的名字都必须不同。下面是两个示例:<地点联邦州=“下萨克森州“国家=“德国“>Braunschweig</地点><价格单位=“Euro“数目=“580“/>处理指示(PI)虽然在XML里有灵活的表示方法,也有平台和应用独立性,但是也可以结合文档给一些关于操作运用的指示。处理指示(PI)提供了这样的一个机制。<?PI-名字PI-语句?>PI-名字必须是一个有效的XML名字。但是应该谨慎使用PI,因为它可以完全自由的被表示。新的或外部的应用不能马上评价出PI,这就大大降低了文档的可使用性。注释注释可以记录进展或包含每个元数据的其他形式,但是不属于文档的内容。除了标签内,它可以出现在文档的任何地方。在下面这个例子里展示了它的句法。<!--这个XML文档包含了VICOSOC501的信息。-->注释不能用于表示属于文档或PI的信息。写注释是为了提高XML文档的可读性以及模式描述。调用和表示注释也可以通过XSL实现,用DOM解析器可以调用,修改注释等。CDATA块CDATA块是一种嵌入包含了作为标记字符的文本的方法。但是它不保存文档里的非二进制数据。它可以出现在任何地方,但是不允许相互嵌套。CDATA块以<![CDATA[开始,以]]>结束。命名域在文档里,标记集合有不同的有效范围,这样就有可能产生识别和冲突的问题,如图2-4所示,因此应该使用命名域。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s14使用命名域的动机-冲突还有一个使用XML命名域的动机在于调节和多次使用。XML命名域里的名字有一个冒号,它把名字分成了前缀和局部成分。参考URI可以包含在命名域里,不能直接用作命名域前缀的字符。命名域也可以通过在XML里使用预定义属性来说明,预定义属性名字必须是“xmlns”,或以前缀“xmlns:”的形式被使用。第一种情况是,为所有紧接着的标签的使用或为没有前缀的时候定义一个标准命名域。另外一个情况是,定义一个命名域,它和一个前缀名字绑定,并且只有如此才有效。句法在这个段落里要介绍XML文档的句法。XML文档是自定义的,并且在文档里包含了明确的关于结构的信息。也可以给他分配一些模式,它们可以出现在同一个文档里或在这个文档之外。使用模式有以下好处:使结构更明确对于很多应用来说,能了解XML文档的结构是很重要的。因此必须知道,文档里有哪些标签,以及它们是如何编排的。识别和避免文档中的错误通过模型化可以检验XML文档和定位错误。识别错误的XML部分是避免XML文档里错误的前提。DTDDTD(DocumentTypeDefinitions)是W3C的XML推荐的组成部分。XML可以使用DTD来说明文档的结构,从而定义自己的标记语言。一个DTD说明在XML文档里能有哪些标签,一个元素里能有哪些属性以及这些元素被允许如何互相嵌套。DTD要在生成XML文档前定义,生成的XML文档也必须符合这个DTD。下面是一个关于使用DTD的小总结。使用了DTDs的XML文档可以由以下情况组成:一系列的元素(A,B),可选择的元素(A|B),元素可以有多个(A?,A+,A*),最小值为0或1,最大值为1或n以上情况的任意组合。为了说明元素,属性里要给出类型(CDATA,NMTOKEN,NMTOKENS,ID,IDREF,IDREFS,ENTITY或记数),是否必须有或者是否是可选择的(#REQUIRED,#IMPLIED,#FIXED)默认值。DTD的优势在于数量小,这就使它的使用变得相对简单而且作用也很明显。DTD的句法并不是XML句法,它小巧,易读和比较好理解。但是DTD也有一些不足之处,因为它限制了表示的可能性,这些不足导致了要开发和引入更多的模式描述方法。XML模式XML模式是一种新的表示XML文档模式信息的方法。和DTD相反,XML模式提供了大量的表示可能性。多种简单的和预定义的数据类型可以定义自己的数据类型可以描述XML文档的正确性的完全条件XML句法可扩展性一个XML模式可以包括定义和说明,通过定义可以生成新的类型,说明可以描述元素和属性的内容。在XML模式里总共有13个元件。这四个元件属于主要的元件:简单类型定义复杂类型定义元素说明属性说明其他的元件有:属性组的定义完全条件的定义下面将介绍XML模式的主要元件。简单类型定义简单类型定义可以预定义或自定义。在XML模式里大量的标准类型(string,boolean,integer等)是预定义的,从一个标准类型中可以推导出一个新定义的类型,通过约束来限制值域。这个约束定义了不同于其他类型的数据类型的性质,这些性质包括:length,minLength,maxLength,pattern等。下面将通过两个例子来说明是如何定义简单类型的。规则表示:类型从xs:string导出,数据类型可能的值符合这个规则的表示。限制字符串的长度:可以用minLength规定字符串的最小长度,用maxLength来规定最大长度。复杂类型定义复杂类型说明了元素可以有属性和包含其他的元素。下面这个例子展现了复杂类型定义的一种可能性。这个复杂类型不仅基于预定义简单类型string和integer,还基于简单自定义类型ort和hausnummer。复杂类型Adresse的子元素定义为序列。复杂类型允许更多的内容模式:All子元素可以无序地出现。Sequence元素要按照规定的顺序出现。Choice可以在给出的元素里面选择一个作为内容出现。元素的出现频率是由参数minOccurs和maxOccurs得知的,它们的默认值是1。当xs:sequence和xs:all时,minOccurs和maxOccurs可以在属性里给出。XML模式里也可以定义包含了混合内容元素的类型定义,那么属性mixed=“true“要加到元素的复杂类型里。可以再次利用,扩展和限制类型定义。因此,可以通过扩展和限制来建立类型定义的结构。扩展意味着元素或属性要加到类型里面。约束通过给出更多性质来限制已经定义了的类型。元素说明元素说明解释了XML文档里元素的性质,它包括名字或另一个元素说明的参考以及类型,可以给出默认值和固定值以及元素的出现频率。此外,元素还可能是空的。元素说明也可以作为复杂类型定义的理解部分。在下面的例子里,一个旅馆要保存最少一个,最多三个的电话号码。在Hotel里元素Telefon可以通过属性ref找到,也就是说,可以再次用到Vorwahl和Rufnummer。这个方法有一个好处,就是如果有必要,只需要对这个元素的类型进行一次修改就可以了。特别是当元素是很多其他元素的子元素时,可以选择这个方法。元素Telefon的类型是一个无名字的类型,我们称之为匿名类型。属性说明属性说明也可以在复杂类型定义里使用。属性说明包括名字,简单类型,使用说明和不是必要的默认值。类型可以是预定义类型,也可以是简单的自定义类型。Use的值表示了这个属性是如何被使用的,它的值有可能是optional,required和fixed。Optional可以把这个属性设定为默认值。如果是fixed,则设置为一个固定值。建模对于以数据中心的XML文档所希望的是用来实现文档建模的设计方法。因此,不是仅仅为模式语言找到图形表示方法,而是在抽象平面上实现建模,然后逐步细化。对于以文档中心的XML文档来说,预定义的模式不是必须的,因此可以不需要对模式进行建模。但是在这里要求通过图形方法可以生成XML文档,它可以可视化XML文档的图形结构或模式信息。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s15结构模式/平面的分类DTD和XML模式是XML领域里最常用的模式。通过图形表示可以提高可度性和理解力。但是目前来说还没有固定的XML模式信息建模的方法。人们现在用于XML应用的是不同领域的设计方法。实体-关系-模型(ERModel)从ER模型和扩展的ER模型里可以推导出DTD或XML模式。实体代表元素,属性代表XML属性,多值和组合的属性将被当作子元素。1:n关系将通过元素结构来建立,N:m关系则在使用ID和IDREF后建立。这种表示的优势在于找到了一种从模式脱离的建模的方法。弱势在于从ER模型到DTD的转化不是那么简单的,1:1和1:n关系的处理方法和n:m关系的不一样。对象-角色-模型(ORM)ORM描述了重要的对象和它们的角色,这个方法不是基于树的。使用ORM时,根据对启发式评价的分析来决定XML模式的树形结构。但是对于ORM有很多种方法建立一棵树。因此,要使用一种方法,首先确定最重要的对象,然后在XML文档结构里构造其他对象。ORM在对XML模式的模型化上具有优势,但是它也有弱势。首先XML原则到ORM原则的建立经常不是很明确,最简单的例子就是对元素或属性建立对象,不是所有的ORM结构都能根据XML模式被建立起来。另外,特定的XML模式的组成部分比如混合内容不能用ORM图表示。UMLUML在很多领域里都被用来建模。可以扩展UML的类图来图形表示DTD或XML模式的所有结构。下面的图中介绍了一些典型XML模式的建模。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s16类的表示图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s17类的聚合以及XML属性定义图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s18类的聚合以及XML属性定义XML编辑器XML编辑器提供了模式和XML文档的图形展示。用它可以输入结构和内容,以及提供图形的表示,来重现XML文档的树形结构和DTD和XML模式的图形结构。另外,也可以隐藏子树,以便在比处理较大的文档时也可以表示出来。单个元素或属性的信息可以通过一个被选择的节点作为附加信息被提供和显示。XML解析器图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s19处理XML文档根据W3C的说明,对XML文档的处理和继续使用分为两个步骤。第一步是把XML文档读入一个解析器中,来检验和分析它的正确性。第二步是处理这个被解析的XML文档。解析器的任务就是把当前的文档进行整理,使它能在应用时被继续处理。因此,在检验错误的同时还要把文档中处于不同文件的组成部分组合起来。解析器是一个把信息分解成它的组成部分的进程。XML文档被分为不同的元素和属性。在解析过程中可以从这些元素推导出文档的结构和信息的结构。另外通过程序接口解析器可以借助于编程语言来调用文档的内容。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s110处理XML的步骤使用解析器的第一步是要分析一个XML文档是否有效,这个XML文档是否符合它的DTD或XML模式。如果这个文档是正确的,就可以生成一个解析树,它的节点和XML文档的标签就会一致。然后在第二步里,所获得的信息要被提取出来并做进一步处理。对XML而言下面四种解析器的类型是可用的:图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s111XML的解析器类型验证的解析器验证的解析器不仅可以检验正确性,也可以检验XML文档的结构,在出现故障时给出错误报告。结构检验可以理解成用DTD或XML模式里定义的结构来确定XML文档的结构。只有当XML文档是完整和正确的,它就可以被验证的解析器进行处理。特别是当XML数据结构上的集成是很重要或在XML文档发布前,使用检验的解析器是具有很大意义的。非检验的解析器一个非检验的解析器可以检验XML文档的正确性。若XML文档不符合XML句法规则,就不能被解析和处理。因为非检验的解析器相对检验的解析器更简单,更小巧和更快,大多数情况下它们将被放置在应用程序里。基于事件的解析器基于SAX的XML解析器是一个基于事件的解析XML文档的方法,在这个解析器里对XML文档进行顺序地的处理。对于每个XML对象的形式,它可以调用方法或函数:元素(带有属性),文本,PI或注释。解析器不能管理元素的树形结构,或者保存任何在存储里已经被解析的数据。即使在文档很大的情况下,这个方法也只要求很少的系统资源。此外,在处理数据时,对文档数据的调用也有很大的灵活性。面向树的解析器每个正确的文档都有一棵带元素的树。因此,用扩展的算法来修改树结构的内容将变得很容易。W3C在它的DOM说明中为XML发展了一种针对基于树的接口的标准。通过对XML文档的导航,可以以任意的顺序读取文档的组成部分。由此何以修改和文档或改变它的结构,还可以生成新的文档或文档组成部分。但是当XML文档很大的时候,生成结构树的费用会很高。SAXSAX(SimpleAPIforXML)是一个用来实现基于事件的XML文档解析的接口说明。SAX不是解析器,而是由不同XML解析器实现的平台独立和语言独立的接口组成的[C-2]。借助SAXAPI可以为XML文档里每个元素调用一个自定义的处理器方法。SAX就是一个面向事件的API,它的结果由Callback机制直接返回到被调用的应用里,然后这个应用可以把返回结果上的活动转换到所谓的处理器的形式。当解析器加载了一个XML文档并且读取了相关的内容,比如XML标签或标签内的字符串,那么就要调用某些SAXAPI的方法来处理内容和进行相关操作。图2-12展示了这个Callback机制。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s112SAX解析器为了解析XML文档,首先要生成SAX解析器的实体,这通过ParserFactory完成,然后必须生成每个处理器并且在解析器上注册。这里有两个可能性:使用XML解析器的通用处理器,或者根据SAX给出的接口实现自己的处理器。最后要被处理的XML文档要被定义为输入源,在它上面可以使用解析器的方法parse()。现在解析器就可以顺序的读取文档和根据元素调用在处理器里的返回方法。SAX解析器必须实现以下四个接口:ContentHandler在类ContentHandler里必须定义方法,当发生事件时就能被调用。对操作来说,这是最重要的一个处理器。比如,方法startDocument()和endDocument()都在文档的开始和结束处被调用。另外还有方法startElement()和endElement(),当解析器读到一个开始标签和一个结束标签时就调用这些方法。下面的例子里展示了这些在ContentHandler里的方法如何被调用。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s113XML文档和方法调用ErrorHandler这个处理器是用来处理所有在解析过程中出现的错误的,使用到方法warning(),error()和fatalError()。方法SAXParseException()的参数是用来保存错误和出现错误的位子的。为了辨认XML文档里的错误,在这里无论如何应该写一些自己的ErrorHandler来处理一些特别的错误,并且在解析器上注册。DTDHandler当解析器在DTD里处理一个未被解析的实体和二进制数据时,需要用到这个处理器。然后调用方法unparsedEntityDecl()或notationDecl(),通过它编程人员可以对未被解析的实体进行处理。EntityResolver当解析器在参考和读取外部文件时,需要用到EntityResolver。然后解析器要调用这个处理器的方法resolveEntity(),从一个公开的ID(URN)获得系统ID(URL)。DOMDOM(DocumentObjectModel)是被当作W3C的关于XML文档的标准面向树的编程接口的推荐被开发的[C-2]。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s114DOM解析器DOM解析器把正确的XML文档转换为一个树形结构。一方面展示了逻辑结构,另一方面描述了调用和修改XML文档的方法。编程者可以生成文档,对结构进行导航,添加,改变或删除元素和内容。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s115DOM的类布局DOM定义了如图2-15表示的图形结构。类Node包含了可以对文档结构导航的方法。在类Node下定义的类表示为一棵树,它展示了被分析的文档的结构。对每个节点类型都有子类。在这些类里有用来调用文档组成部分的方法。类Node的方法这个类有一个用来识别节点类型的属性,比如读取文档,元素,属性或PI的值。类Node的其他方法可以对文档结构进行导航。比如,方法hasChilNodes()返回信息,是否这个节点有子节点。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s116对XML文档结构的导航不仅可以询问被读入的XML文档的结构,而且可以通过定义的方法进行修改,特别是节点的替代,删除和添加。图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s117对树形结构的导航DOM解析器比较是和用来修改文档。此外,文档可以先被修改,然后通过对DOM结构的导航逐步被读取,因此可以调用XML文档的组成部分。接口NodeList用方法getChildNodes()可以对XML结构进行导航,它的结构是一个节点列表。类NodeList可用来处理节点列表。节点列表存储了一个节点的列表。接口NamedNodeMap除了NodeList还有一个接口NamedNodeMap。在这个类里除了方法getLength()和item(index)外还可以使用方法getNamedItem(name)和removeNamedItem(name)来读取和删除元素节点。XML的表示如前面提到的,XML标记不能用于表示XML文档。从SGML继承来的内容和表示的分离是关键原则之一,它允许根据不同情况来表示XML文档。如果浏览器能显示XML,XML文档就能通过浏览器被直接地读取和表示出来。大多数情况使用了形式语言来表示XML文档。W3C有两个相关的说明:CSS(CascadingStyleSheets)和XSL(ExtensibleStylesheetLanguage)。CSS是一个比较旧的标准,它可以用于HTML。XSL是特别为生成XML形式模型而开发的。和CSS一样,用XSL可以确定布局或者XML文档可以转变为例如HTML的结构。虽然CSS也可以在XML下使用,但是涉及到XML的话XSL则显得更强大。XSL的任务首先在两个范围内:构造一种语言,用它可以把XML文档转换到其他的形式(例如HTML)使用一个分配给标记以固定形式的集合。本章小结在这章里,主要介绍了XML相关的基础知识。首先说明了它的由来,特性以及应用领域。紧接着介绍了XML文档,包括它的结构以及组成元素。继XML文档之后,我们对XML的句法进行了了解,主要是常用的DTD和XML模式,以及这些模式和文档的模型化的方法。虽然在这次毕业设计中没用到XML的解析器,但是作为XML的相关知识在这里还是做了介绍,主要了解了DOM和SAX。最后简单的列举了一些XML的表示方法。可以说,这一章的内容是接下来的部分的基础,也是整个毕业设计的基础。VICOSOC501系统介绍因为设计和建立原型都是建立在VICOSOC501系统上的,所以在这里先介绍一些相关的基础知识。VICOSOC501(VehicleandInfrastructureControlandOperatingSystemOperationManagementSystemCommuter/Subway)属于操作导航系统家族VICOSOC,这个家族是为了集中的带有大量操作导航技术的函数的自动化所开发的。用VICOSOC501可以在近程和远程交通上控制和监视电子联锁站和继电联锁站。硬件环境图STYLEREF1\s错误!文档中没有指定样式的文字。SEQ图\*ARABIC\s118VICOSOC501系统环境VICOSOC501的系统环境基于标准硬件元件和系统结构。元件和服务器通过一个Ethernet-LAN相互连接起来。连接服务器的LAN上使用的通信协议是TCP/IP。外部系统通过PAK被控制着。它基本上由以下元件组成:MMI服务器(人工机器接口)MMI服务器其实是操作站,它由一个或多个显示器连接而成。在上面能显示出完整的操作事件和轨道图。所有的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业废气处理运维指南(2025版)
- 2026二级建造师考试精版重点
- 2026年学生防艾知识试题及答案
- 2026年事业单位岗位技能提升面试试题及答案解析
- 2026年变电运行工站用电系统题含答案
- 2026年黑龙江省密山市高三数学下册期末考试模拟检测卷及一套答案
- 2026年黑龙江省尚志市高三数学下册期末考试模拟卷含答案【满分必刷】
- 2026年黑龙江省抚远市高三数学下册期末考试模拟卷及参考答案【培优A卷】
- 2026年黑龙江省海伦市高三数学下册期末考试模拟卷及参考答案(考试直接用)
- 2026年黑龙江省穆棱市高三数学下册期末考试模拟卷含答案【培优B卷】
- 2026年道路客运汽车驾驶员职业技能等级认定(三级)操作技能试题
- 2026年安徽省中考英语真题试卷及答案
- 内支撑设计计算书(Excel自动计算版)
- 六年级上册语文1-8单元基础默写通关练习卷
- 2026年安徽省基层法律工作试题(附答案)
- 2026年福建厦门大学附属第一医院海沧院区(厦门市肿瘤医院)辅助岗位招聘8人笔试备考试题及答案详解
- 2025-2026学年江苏省苏州市高新区苏州实验中学高二上学期10月月考数学试卷(含答案)
- 煤矿井下无轨胶轮车安全管理培训
- 慢性肾脏病基层诊疗管理指南(2025版)
- (正式版)DB11∕T 354-2023 《生活垃圾收集运输管理规范》
- 14.1 全等三角形及其性质 课件(共33张)-人教版(2024)数学八年级上册
评论
0/150
提交评论