银行业CRM软件技术

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第1章银行业CRM软件技术本章对涉及建设银行CRM系统的核心软件技术进行慨要讲解,并对一些功能进行了比较分析,有助于银行进行软件选型。1.1XML技术XML技术作为互联网的种子技术是建设CRM的一个重要支撑技术。1.1.1XML介绍XML是ExtensibleMarkupLanguage的简称,即“可扩展标记语言”,是由W3C组织于1998年2月制定的一种通用语言规范,是专为Web应用而设计的SGML[2](StandardGeneralizedMarkupLanguage)的一个优化子集。同SGML类似,XML是一种元标记语言,使用者可按需创建新的标记,XML的可扩展性就在于此。这些标记通过XMLDTD(DocumentTypeDefinition,文挡类型定义)来加以定义。DTD是一系列关于元素类型(ElementType),属性(Attributes),实体(Entities)和符号(Notations)的定义。它定义了文档所需的标记,比如可在文档里使用的元素类型,这些元素之间的可能的联系,还可能声明元素的属性,属性是元素的“元数据”,而不是元素包含的内容。另外,一个实体就像是一个缩写,被当做一些文本或一些数据的缩写来使用。而符号描述某一类事物(例如图像)的数据内容,它定义怎样翻译某类对像的比特流。XML文档可以在它的文档类型声明(DocumentTypeOeclaration)里声明该文档遵循某个XMLDTD。1.1.2XML语法1.1.2.1XML文档的组成XML文档包含由XML标记和字符数据组成的文本。它是一个有固定长度的有序字节的集合,并遵守特定的约束。它可能是或者不是一个文件。例如,XML文档可能。存储在数据库中由CGI程序在内存中瞬间创建由几个相互嵌套的不同文件组合而成不存在于自身的文件中但是如果把一个XML文档看做一个文件也是可以的,只要记住它可能并不是存在于硬盘上的真实文件。XML由称为“实体”的存储单元组成,每个实体包含文本或者二进制数据,但不能同时存在。文本数据由字符组成,二进制数据用于图片和小程序等类内容。用一个具体的示例说明就是,一个含有IMG标记的原始HTML文件是一个实体而不是文挡。一个HTM文件加上所有使用IMG标记嵌入的图片就组成一个文档。在本章和后续几章中我们只针对由一个实体构成的简单的XML文档,即文档本身。而且这些文档只包含文本数据,不包含诸如图片小程序一类的二进制数据。这些文档能够完全独立被,理解而无须读取其他文件。换句话说,它们是独立存在的。这种文档通常在它的XML标头中含有一个值为yes的standalone属性,如下所示。?xmlversion=“1.0”standalone=“yes”?外部实体和实体引用用于组合多个文件和其他数据源以创建一个独立的XML文挡。这样的文挡如果不引用其他文件就不能进行句法分析。这些文档通常在XML声明中含有一个属性值为no的standalone属性。?xmlversion=“1.0”standalone=“no”?1.1.2.2实体引用实体引用是指分析文档时会被字符数据取代的置标。XML预先定义了5个实体引用,列在表6-1中。实体引用用于XML文档中的特殊字符,否则这些字符将被解释为置标的组成部分。例如,实体引用<;代表小于号(),否则会被解释为一个标记的起始部分。表6-1XML预定义的实体引用实体引用所代表字符&;&<;>;";“&qpos;’XML中的实体引用与HTML中不同,必须以一个分号结束。因此>;是正确的实体引用写法,>是不正确的。未经处理的小予号()同表示“和”的符号(&)在一般的XML文本中往往被分别解释为起始标记和实体引用(特殊文本是指CDATA段,将在后面讨论)。因此,小于号同“和”号必须分别编码为<;和&;。例如,短语“Ben&]errysNewYorkSuperFudgeChunkIceCream”应当写成Ben&;]errysNewYorkSuperFudgeChunkIceCream。大于号、双引号和撇号在它们可能会被解释成为置标的一部分时也必须编码。但是,养成全部编码的习惯要比努力推测一个特定的应用是否会被解释为置标容易得多。实体引用也能用于属性值中。例如。PARAMNAME=“joke”VALUE=“Thedjnersaid,"e;Waiter,There&apos;saf1yinmysoup!"e;”IPARAM1.1.2.3CDATA在大多数情况下,出现在一对尖括号()中的是置标,不在尖括号中的是字符数据。但是有一种情况例外,在CDATA段中所有文本都是纯字符数据。看起来与标记或者实体相似的仅仅是它们各自相应的文本。XML处理器无论如何是不会解释它们的。CDATA段用于需要把整个文本解释为纯字符数据而并不是置标的情况。当有一个包含许多、、&或”字符而非置标的庞大文本时,这是非常有用的。对于大部分C和Java源代码,正是这种情况。如果想使用XML写有关XML的简介,CDATA段同样非常有效。例如,在一个文本中包含许多小的XML代码块,而正在使用的字处理器又不能顾及这些情况。但是如果把本书转换为XML,用户将不得不很辛苦地用<;代替全部小于号,&;代替所有“和”字符。如下所示。<;?xmlversion=“1.0”standalone=“yes”?>;<;GREETING>;HelloXML!<;/GREETING>;为了避免这种麻烦,可以使用一个CDATA段表示一个不需要翻译的文本块。CDATA段以![CDATA[开始并以]]结束,例如。![CDATA[“?xmlversion=“1.0”standalone=“yes”?GREETINGHelloXML!/GREETING]]惟一不许出现在CDATA段中的文本是CDATA的结束界定符]]。注释可能会出现在CDATA段中,但不再扮演注释的角色。也就是说两个注释标记和包含在它们之间的全部文本都将显示出来。因为]]不能出现在CDATA段中,所以CDATA段不能嵌套。这使得使用XML写有关的CDATA段相对困难些。如果需要的话,必须去掉项目符号,并使用<;、&;和实体引用。CDATA段不常需要,一旦需要时,它是非常有用的。1.1.2.4标己标记能够区分XML文件与无格式文本文件。标记在XML文档中以开始,以结束,而且不包含在注释或者CDATA段中。因此,XML标记有与HTML标记相同的形式。开始或打开标记?1t;开始,后面跟有标记名。终止或结束标记以/开始,后面也眼标记名。遇到的第一个该标记结束。1.标记名每个标记都有一个名称。标记名必须以字母或下划线C)开始,名称中后续字符可以包含字母、数字、下划线、连字符和句号。其中不能含有空格(经常用下划线替代空格)。下面是一些合法的XML标记。HELPBookvolumeheading1section.paragraphMary_Smith_8ball以下是句法不正确的XML标记。Book%7volumecontrol1headingMarySmith.employee.salary结束标记与起始标记同名,只是在起始尖括号后加了一个/。例如,如果起始标记是FOO,那么结束标记是/F00。下面是前面所提到的合法起始标记所对应的结束标记。IHELPIBook/volume/heading1/section.paragraph/Mary_Smith/_8ballXML名称是大小写敏感的。在HTML中的P和p是同一个标记,/p可以结束一个P标记,但在XML中却不行。下面所示的并不是我们讨论过的合法起始标记所对应的结束标记。/help/book/Volume/HEADING1/Section.Paragraph/MARY_SMITH/_8BALL2.空标记许多不含数据的HTML标记没有结束标记。例如,有/LI、/IMG、/HR或/BR标记。一些页面作者在所列的项目后面确实会包含/LI标记,一些HTML工具也使用/LI标记。但是HTML4.0标准特别否认了这一点的必要性。同HTML中所有没有被公认的标记一样,一个不必要的/LI的出现对交付的输出没有任何影响。这在XML中不是问题。XML的总体观点就是在分析文档时允许发现新的标记。因此没有识别的标记就不会被简单地忽略。而且XML处理器一定能够判明以前从没出现过的一个标记有没有结束标记。XML区分带有结束标记的标记,而不带结束标记的标记称为空标记。空标记以斜杠和一个结束尖括号(/)结束。例如,BR/或HR/。目前的Web浏览器处理这种标记的方法不一致,如果希望保持向后的兼容性,可以用结束标记来代替,只要在两个标记之间不包含任何文本。例如。BR/BRHR/HRIMG/IMG1.1.2.5属性在前面内容中讨论过,起始标记和空标记可以随意地包含属性。属性是用等号(=)分隔开的名称一数值对。例如。GREETINGLANGUAGE=“English”HelloXML!MOVIESRC=“WavingHand.mov”//GREETING在此GREETING标记有一个LANGUAGE属性,其属性值是English。MOVIE标记有一个SRC属性,其属性值为WavingHand.mov。1.属性名属性名是宇符串,遵循与标记名同样的规则。这就是,属性名必须以字母或下划线(_)开始,名称中后续字符可以包含字母、数字、下划线、连字符和句号。其中不能含有空格(经常用下划线替代空格)。同一个标记不能有两个同名的属性。例如,下面的例子是不合法的。RECTANGLESIDE=“8cm”SIDE=“10cm”/属性名是区分大小写的。SIDE属性与side或Side属性不是同一个属性,因此以下例子是合法的。BOXSIDE=“8cm”side=“10cm”Side=“31cm”/2.属性值属性值也是字符串。如下面所示的LENGTH属性,即使字符串表示的是一个数,但还是两个宇符7和2,不是十进制数的72。RULELENGTH=“72”/如果编写处理XML的代码,在对字符串执行算术运算之前必须把它们转换为一个数。与属性名不同,对属性值包含的内容没有任何限制。属性值可以包含空格,可以以一个数字或任何标点符号(有时单括号和双括号除外)开头。XML属性值由引号界定。与HTML属性不同,XML属性值必须加引号。大多数情况下使用双引号,但是如果属性值本身含有→个引号,就需要使用单引号。例如:RECTANGLELENGTH=”7”WIDTH=”8.5”/如果属性值中含有两种引号,那么其中不用于界定字符串的一个必须用合适的实体引用代替。通常替换两个,这种方法很管用。例如:RECTANGLELENGTH=8&apos;7";WIDTH=“10&apos;6";“/1.1.2.6XML文档规则尽管可以根据需要编写标记,但XML文档为了保持结构完整必须遵循→定的规则。如果一个文挡不是结构完整的,大部分读取和显示操作都会失败。事实上,XML规范严格禁止XML句法分析器分析和解释结构欠妥的文档。正在执行操作的分析器惟→能做的是报告出错。它不会修改错误,不会做最大的努力显示作者想要的东西,也不会忽略不当的结构欠妥的标记。它所能做的是报告错误和退出。这样做的目的是为了避免对错误的兼容性的竞争。这种竞争已使得编写HTML语法分析程序和显示程序变得非常困难。因为We浏览器承认畸形的HTML,而Web页面设计者不会特别尽力确保他们的HTML正确无误。事实上,他们甚至利用个别浏览器中的错误达到特殊的效果。为了正确显示被大量安

1 / 37
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功