• --:)欢迎访问锋网源码(:--
  • 首页
  • RSS订阅
  • 常用软件
  • 网页模板
  • 网站运作
  • 锋网学院
  • 繁體中文

  • 学院首页
  • 新闻资讯
  • 网站运营
  • 网站开发
  • 美工设计
  • 数据库类
  • 服务器类
  • 网络应用
  • 操作系统
  • 软件教学
编程开发   认证考试   网络安全   文章搜索: 高级搜索
会员登录/控制面版 您的位置: 学院首页 >> 编程开发 >> 文章内容
 

精彩推荐

 
 

本类推荐文章

 
 

本类阅读排行

  • 用Delphi编写DelTree程序
  • 远程控制篇:模拟按键
  • 如何在VB6中导出EXCEL、FOXP..
  • c# arraylist functions
  • DELPHI中动态调用dll
  • 远程控制篇:通过IP地址得到..
  • DataGrid控件的使用
  • C#中的抽象类
  • <展现C#> 第七章 异常处理
  • C#代码与JavaScript函数的相..
  • ADO如何使用Update语法呢?(..
  • 在VB中用Outlook发电子邮件
  • 直接访问WebBrowser控件中的..
  • 在delphi把字符串分割成一维..
  • C#導出Excel源碼
  • dbgrideh如何实现点击标题排..
  • 在VB中如何使用ping命令
  • 用VB创建Excel报表
  • C# 操作文件
  • C++与C#混合生成.NET程序
 
 

利用SDO2.0创建和读取基于XML文档

  • 日期:2008-03-05     人气:     出处:本站     作者:
  • 字体大小:
  • 小
  • 中
  • 大

  引言:什么是 SDO?

  Service Data Object (SDO) 2.0 是一个开放标准数据模型编程 API,允许开发人员在较高的级别方便地操作数据。尽管 SDO 1.0 以相同的数据抽象为目标,但有几个大的缺点,其中主要的一点是缺少 Helper 类,如 XSDHelper, XMLHelper 等。而最终结果是,开发人员被迫使用 SDO 1.0 实现 API(来自 Eclipse Modeling Framework (EMF) SDK)。

  当前的实现 (SDO 2.0) 使用 EMF 2.2 SDK,但这个 SDO 2.0 实现细节并不会影响开发人员根据新 API 编写程序。将来,开放源代码社区(通过 Apache Software Foundation)可能会决定提供不同的 SDO 2.0 实现,但这不应影响基于 SDO 2.0 API 构建的应用程序。

网页教学网

  了解这个新 API 的优势的最基本方法是使用 SDO 2.0 来创建符合 XML 模式 (XSD) 的 XML 文档并对其进行读取操作。要在不使用 SDO 2.0 的情况下完成相同的工作,开发人员需要理解 XML 解析器如何工作,并将数据解析逻辑与应用程序紧密集成。如果以后 XSD 需要更改,将需要对应用程序的各处进行调整,从而可能对代码的质量带来灾难性的影响。

  SDO 2.0 API 的新用户很难直接通过学习规范来理解相关概念。为了提供一定的帮助,我们从 XML Schema Primer创建了一个示例,以说明如何使用 SDO 2.0 API 进行以下任务:

  •   将 XML 文档写入到磁盘
  •   从磁盘读取该文档。

  场景:购买订单信息收集和配送 网页教学网

  以下是我们将尝试通过我们的示例实现的使用场景。首先,公司确定购买订单(purchase order,PO)信息的要求。完成此任务后,我们就开始创建静态表单,以设计信息的结构。在数据库中,此静态表单即表模式。在 XML,此静态表单即 XML 模式 (XSD)。如果以后需要收集更多的客户信息,我们将需要重新设计表单/表模式/XSD。 Webjx.Com

  下订单时,客户需要填写 PO 表单,或向操作员提供相同的信息,以便填写此表单。表单中的信息将随后由公司用于对订单进行配送。

  公司接收到 PO 信息后,很有可能会将其进行保存,并在以后对其进行读取以用于各种目的(如提供客户支持)。在此示例中,我们可以将信息以 XML 格式保存,然后使用 SDO API 进行读取。

  图 1 显示了从客户 Robert Smith 收集的 PO 信息示例。将创建 XSD 文件,以采用结构化的方式存储此示例购买订单。将用一个名为 CreatePurchaseOrder.java 的示例程序来采用 XML 格式创建示例 PO(名为 po.xml)。最后,将使用 ReadPurchaseOrder.java 来演示如何从 po.xml 读取订单信息。

  图 1. 来自 Rober Smith 的示例购买订单信息

Order date: 1999-10-20

Shipping information:
Name:Alice Smith
Street:123 Maple Street
City:Mill Valley
State:CA
Zip code: 90952
Country:US

网页教学网

Billing information:
Name:Robert Smith
Street:8 Oak Avenue
City:Mill Valley
State:PA
Zip code: 95819
Country:US

Order Items:
1. Part number:872-AA
Product name:Lawnmower
Quantity: 1
Price: 148.95
Comment:Confirm this is electric

Webjx.Com

2. Part number:926-AA
Product name:Baby Monitor
Quantity: 1
Price: 39.98
Ship date: 1999-05-21

Comment: Hurry, my lawn is going wild!

 
网页教学网

  购买订单的 XML 模式 Webjx.Com

  基于图 1 所示的示例购买订单,可以使用一个 PO 类型来表示订单。我们将其命名为 PurchaseOrderType。PurchaseOrderType 的实例可以包含四个主要数据,如下所示: 网页教学网

  •   shipping information
  •   billing information
  •   order items information
  •   comment

  shipping information 和 billing information 可包含更多的数据,如 name、street、city、state、zip 和 country。Order items information 可以包含客户所购买的物品的很多信息。每个物品可能包含 part number、product name、quantity, price、ship date 和 comment。PO 的 comment 区域包含一个字符串值,并不要求采用更结构化的信息。

  清单 1 显示了结构化为 XSD 格式的文件中包含的所有购买订单信息。

  清单 1. PO.xsd

Webjx.Com

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:po="http://www.example.com/PO" targetNamespace="http://www.example.com/PO">

    <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="USAddress">
        <xsd:sequence>
            <xsd:element name="name"   type="xsd:string"/>
            <xsd:element name="street" type="xsd:string"/>
Webjx.Com

            <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="quantity">
                            <xsd:simpleType>
                                <xsd:restriction base="xsd:positiveInteger">
                                    <xsd:maxExclusive value="100"/>
                                </xsd:restriction>
                            </xsd:simpleType>
                        </xsd:element>
                        <xsd:element name="USPrice"  type="xsd:decimal"/>
                        <xsd:element ref="comment"   minOccurs="0"/>
                        <xsd:element name="shipDate" type="xsd:date" minOccurs="0"/> Webjx.Com
                    </xsd:sequence>
                    <xsd:attribute name="partNum" type="po: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> 网页教学网
 

网页教学网

相关文章
  • 利用Photoshop突出滤镜营造立体感
  • Vista系统创建密码重设盘的技巧
  • ASP对XML文档中文本的增加、删除、修改、查看
  • 如何在PS中创建精密到1个像素的蒙板?
  • CSS教程:创建性感的CSS样式表
  • 基于javascript的拼音字典及应用举例
  • 3ds Max简单创建咖啡热气腾腾动画
  • 创建和配置ODBC数据源(SQL入门)
相关软件

  • 网友评论:
  • 查看所有评论
  • 我要发表评论
 

关于本站 | 广告联系 | 版权声明 | 网站地图 | 加入收藏 | 帮助中心 |

Copyright © 2006-2007 fwvv.net  程序支持:木翼  皖ICP备06004916号