频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

使用SDO跟踪XML数据的变化

来源: 作者:佚名 出处:巧巧读书 2008-02-29 进入讨论组
下一页 1 2 3 4 

    跟踪数据的变化在很多软件、应用程序和商业场景中是一个基本的要求。如果要严格地实现这个需求是非常困难的,这主要是因为对文件的不同变化建模,并监视这些变化一般很难做到。

从另一方面讲,在所有的程序中反复地实现这种功能要比将一个单独的模块应用到不同的应用程序中更经济实用。而服务数据对象(SDO),这个由BEA和IBM定义的异构数据访问解决方案,为开发人员提供了更容易实现的机制来从系统层跟踪数据的变化。

    本文给出了一个使用Apache SDO处理XML数据的例子。由于SDO现在还不是处理XML的标准的解决方案,因此,本文还讨论了SDO中的基本的操作XML数据的方法。

    一、处理XML数据的三个阶段

    在本文给出的处理XML的例子分为三个不同的阶段,这些阶段如下:

    1. 建立

    2. 处理

    3. 浏览

    XML数据可以通过一个文件系统在这三个阶段之间进行传输。在本例的中心场景如下:第二步需要记录XML文件在第一阶段被建立的记录,当第三步浏览XML数据时,人们总希望知道这个文件有哪些变化。如果我们使用Word的跟踪特性,我们将会立即获得这些变化的值。

    许多应用程序都有这些需求,包括实现并发控制、离线应用程序的同步,商业进程管理(BPM)系统。这部分将演示SDO如何帮助我们更容易地实现这些需求。

    本文提供的XML数据是一个订购数据,代码如下:

   

 <?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.example.com/PO"
targetNamespace="http://www.example.com/PO">

<xsd:import namespace="commonj.sdo/xml" schemaLocation="sdo.xsd"/>
    <xsd:element name="purchaseOrder" type="PurchaseOrderType"/>
    <xsd:element name="comment" type="xsd:string"/>

<xsd:complexType name="PurchaseOrderType">
        <xsd:sequence>
            <xsd:element name="shipTo" type="USAddress"/>
            <xsd:element name="billTo" type="USAddress"/>
            <xsd:element ref="comment" minOccurs="0"/>
            <xsd:element name="items"  type="Items"/>
        </xsd:sequence>
        <xsd:attribute name="orderDate" type="xsd:date"/>
    </xsd:complexType>
    <xsd:complexType name="StatusType">
        <xsd:sequence>
            <xsd:element name="status"   type="xsd:string"/>
            <xsd:element name="contact"   type="xsd:string"/>
            <xsd:element name="changeDate" type="xsd:date"/>
        </xsd:sequence>
    </xsd:complexType>

<xsd:complexType name="USAddress">
        <xsd:sequence>
            <xsd:element name="name"   type="xsd:string"/>
            <xsd:element name="street" type="xsd:string"/>
            <xsd:element name="city"   type="xsd:string"/>
            <xsd:element name="state"  type="xsd:string"/>
            <xsd:element name="zip"    type="xsd:decimal"/>
        </xsd:sequence>
        <xsd:attribute name="country" type="xsd:NMTOKEN" fixed="US"/>
    </xsd:complexType>
    <xsd:complexType name="Items">
        <xsd:sequence>
            <xsd:element name="item" minOccurs="0" maxOccurs="unbounded">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="productName" type="xsd:string"/>
                        <xsd:element name="price"  type="xsd:decimal"/>
                        <xsd:element name="quantity">
                            <xsd:simpleType>
                                <xsd:restriction base="xsd:positiveInteger">
                                    <xsd:maxExclusive value="100"/>
                                </xsd:restriction>
                            </xsd:simpleType>
                        </xsd:element>
                        <xsd:element ref="comment"   minOccurs="0"/>
                        <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/>
                    </xsd:sequence>
                    <xsd:attribute name="partNum" type="SKU" use="required"/>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

<xsd:simpleType name="SKU">
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="\d{3}-[A-Z]{2}"/>
        </xsd:restriction>
    </xsd:simpleType>
</xsd:schema>

 

专题:http://www.qqread.com/java/2008/02/u399263.html 更多文章 更多内容请看XML详解开发应用专题,或进入讨论组讨论。
下一页 1 2 3 4 
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章