在InterSystems IRIS®中,您可以使用对象作为XML文档的直接表示,反之亦然。因为InterSystemsIRIS包括一个本地对象数据库,所以您可以直接将这些对象与数据库一起使用。此外,InterSystems IRIS提供了用于处理任意XML文档和DOM(文档对象模型)的工具,甚至是与任何InterSystems IRIS类无关的文档。
1.1 用XML表示对象数据
一些XML工具主要用于支持XML的类。若要对类进行XML启用,请将%XML.Adaptor
添加到其超类列表中。%XML.Adaptor
使您能够将该类的实例表示为XML文档。您可以添加类参数和属性参数来微调投影。请参见将对象投影到XML。
对于启用XML的类,您的数据可以以以下所有形式提供:
- 包含在类实例中。根据类的不同,数据也可以保存到磁盘上,在那里它可以以与其他持久类相同的方式使用。
- 包含在XML文档中,这些文档可以是文件、流或其他文档。
- 包含在DOM中。
下图概述了用于在这些表单之间转换数据的工具:
在启用XML的类的上下文中,%XML.Writer
使您能够将数据导出为XML文档。输出目的地通常是一个文件或流。
%XML.Reader
使您能够将合适的XML文档导入到类实例中。源通常是一个文件或流。若要使用此类,请指定类名和XML文档中包含的元素之间的相关性。给定的元素必须具有相应类所期望的结构。然后逐个节点地阅读文档。当您这样做时,系统会在内存中创建该类的实例,其中包含在XML文档中找到的数据。
DOM
也是处理XML文档的一种有用方法。您可以使用%XML.Reader
来读取XML文档并创建表示该文档的DOM。在这种表示方式中,DOM是一系列节点,您可以根据需要在它们之间导航。具体来说,您可以创建一个%XML.Document
的实例,表示文档本身并包含节点。然后使用%XML.Node
来检查和操作节点。如果需要,可以使用%XML.Writer
以再次编写XML文档。
InterSystems IRIS XML工具提供了许多访问XML文档和DOMs中的数据和修改XML文档和DOM的方法。
1.2 创建任意XML
使用InterSystems IRIS XML工具,您还可以创建和使用任意XML,也就是说,不映射到任何InterSystem IRIS类的XML。若要创建任意XML文档,使用%XML.Writer
。此类提供了添加元素、添加属性、添加命名空间声明等方法。
若要创建任意DOM,使用%XML.Document
。该类提供了一个类方法,该方法返回具有单个空节点的DOM。然后使用该类的实例方法根据需要添加节点。
或者使用%XML.Reader
以读取任意XML文档,然后从该文档创建DOM。
1.3 访问数据
InterSystems IRIS XML工具提供了几种以XML形式访问数据的方法。下图显示了摘要:
对于任何格式良好的XML文档,都可以使用以下类来处理该文档中的数据:
-
%XML.TextReader
— 您可以使用它逐个节点地读取和解析文档。请参阅使用%XML.TextReader。 -
%XML.XPATH.Document
— 您可以使用XPATH表达式来获取数据,该表达式引用文档中的特定节点。请参见评估XPath表达式。
在InterSystems IRIS中,DOM是%XML.Document
实例。该实例表示文档本身并包含节点。您可以使用此类的属性和方法从DOM检索值。您可以使用%XML.Node
来检查和操作节点。有关信息,请参阅将XML文档表示为DOM。
1.4 修改XML
InterSystems IRIS XML工具还提供了以XML形式修改数据的方法。下图显示了摘要:
对于XML文档,可以使用%XML.XSLT.Transformer
中的类方法以执行XSLT转换并获得文档的修改版本。请参阅执行XSLT转换。
对于DOM,可以使用%XML.Document
的方法来修改DOM。例如,可以添加或删除元素或属性。
1.5 SAX解析器
InterSystems IRIS XML工具使用InterSystems IRIS-SAX(XML的简单API)解析器。这是一个使用标准Xerces库的内置SAX XML验证解析器。SAX是一个解析引擎,提供完整的XML验证和文档解析。InterSystems IRIS SAX使用高性能的进程内调用机制与InterSystems Iris进程进行通信。使用这个解析器,您可以使用内置的InterSystems IRIS XML支持来处理XML文档,也可以在InterSystems IRIS中提供自己的自定义SAX接口类。
对于特殊应用程序,可以创建自定义实体解析器和内容处理程序。此外,您还可以使用行业标准的XML DTD或模式验证来验证任何传入的XML,并可以指定要解析的XML项。请参阅自定义SAX解析器的使用方式。
1.6 其他XML工具
InterSystems IRIS XML支持包括以下附加工具:
%XML.Schema
使您能够从一组启用了XML的类中生成XML模式。
%XML.Namespaces
使您能够检查XML名称空间和其中的类,以获得InterSystems IRIS名称空间。
%XML.Security.EncryptedData
类和其他类使您能够加密XML文档,以及解密加密的文档。
%XML.Security.Signature
类和其他类使您能够对XML文档进行数字签名,以及验证数字签名。