在从一个schema实例中构造一个DO的时候,发现了一个有趣的问题,代码如下:
String str = "<m:receiveResult xmlns:m=\"http://ordertomanufacturingservice.services.starflow.ro.icss.com/wsdl\">" +
"<orderId>rrrrr4</orderId>" +
"<customerName>String</customerName>" +
"<orderState>ORDER-FINISHED</orderState>" +
"<orderItems>" +
"<orderItem> " +
"<productName>String</productName>" +
"<price>3.1415926535897932384626433832795</price> " +
"<quantity>String</quantity> " +
"<comment>String</comment> " +
"<shipDate>String</shipDate> " +
"</orderItem>" +
"</orderItems>" +
"</m:receiveResult>";
//从字符串创造DataObject
String str2 =
"<m:ReceiveOrder xmlns:m=\"http://ordertomanufacturingservice.services.starflow.ro.icss.com/wsdl/\">" +
"<orderId>testreciiveServcice11111</orderId>" +
"<customerId>String</customerId>" +
"<customerName>String</customerName>" +
"<orderItems>" +
"<orderItem> " +
"<productName>String</productName>" +
"<price>3.1415926535897932384626433832795</price>" +
"<quantity>String</quantity>" +
"<comment>String</comment>" +
"<shipDate>String</shipDate> " +
"</orderItem>" +
"</orderItems>" +
"</m:ReceiveOrder>";
//创造一个DataObject
HelperContext scope = SDOUtil.createHelperContext();
loadTypesFromXMLSchemaStr(scope,schema3);
XMLDocument xmlDoc = getXMLDocumentFromString(scope,str2);
DataObject root = xmlDoc.getRootObject();
//从创建的DO中取值
String orderId = root.get("orderId").toString();
String customerName = root.get("customerName").toString();
System.out.println("rootType:"+root.getType().getName());
System.out.println("orderId: "+orderId);
System.out.println("customerName: "+customerName);
打印的结果为:
rootType:AnyTypeDataObject
orderId: [org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl@10ffb38
(mixed: [xml.type:text=testreciiveServcice11111], anyAttribute: null)]
customerName: [org.apache.tuscany.sdo.impl.AnyTypeDataObjectImpl@36527f
(mixed: [xml.type:text=String], anyAttribute: null)]
为什么呢?明明我创建的是ReceiveOrder类型,得出的确实AnyTypeDataObjec,AnyTypeDataObjec又是什么意思呢?找不到类型?对了!为什么找不到类型呢,明明指定了相应的namespace,莫非。。。?还是检验下为好,额。。。
就多出一个"/"。。。
通过这个例子,发觉创建的DO是通过namespace来定位对象的类型,而且xsd中的tns和targetnamespace的值是相同的,当namespace写错了,找不到类型也就不足为怪了!
分享到:
相关推荐
如果 SDO_SRID 不为 NULL,则必须包含 MDSYS.CS_SRS 表中 SRID 列中的某一个值。 3. SDO_POINT 属性 SDO_POINT 属性是使用 SDO_POINT_TYPE 对象类型定义的。当 SDO_ELEM_INFO 和 SDO_ORDINATES 都为 NULL 时,SDO_...
META-INF/MANIFEST.MF commonj.sdo.ChangeSummary.class commonj.sdo.DataGraph.class commonj.sdo.DataObject.class commonj.sdo.helper.CopyHelper.class commonj.sdo.helper.DataFactory.class commonj.sdo....
commonj.sdo.ChangeSummary.class commonj.sdo.DataGraph.class commonj.sdo.DataObject.class commonj.sdo.helper.CopyHelper.class commonj.sdo.helper.DataFactory.class commonj.sdo.helper.DataHelper.class ...
Service Data Objects (SDO) 是一种用于处理数据对象的标准技术,它支持跨平台的数据对象处理,允许开发者以一致的方式操作来自不同源的数据。SDO 的主要特性包括对数据模型的独立性、强大的数据绑定能力以及支持...
CANopen的SDO介绍 CANopen是一种基于Controller Area Network(CAN)总线的通信协议,广泛应用于工业自动化、机器人、汽车电子等领域。其中,SDO(Service Data Object)是CANopen协议中的一种重要机制,用于实现...
这里的元数据用于标识空间范围为经度 -180 到 180、纬度 -90 到 90 的矩形区域,以及使用 WGS84 坐标系。 二、 创建空间索引 创建空间索引的语句如下: ```sql CREATE INDEX spatial_index_tc2_df_520 ON G_...
3. 数据源:数据源不限于后端数据源(如持久存储数据库)只有 DMS 访问数据源,SDO 应用程序不访问数据源。 B. 对应于 SDO 编程模型的一个接口 1. 数据对象:数据对象是结构化数据的 SDO 表示。数据对象是通用的,...
1. **数据对象**:Java中的DataObject类是SDO的核心,它包含了属性和值。开发者可以通过get和set方法访问和修改属性。 2. **数据图**:DataGraph是数据对象的集合,代表了业务逻辑中的一个完整数据单元。它可以包含...
例如,在整合来自不同系统的数据时,SDO能够实现数据的标准化处理,避免了因数据格式不一致而导致的错误。此外,在云计算和大数据领域,SDO也发挥着重要作用,帮助实现数据的高效存储、检索和分析。 六、SDO规范的...
6. **使用方法**:"using_shp2do.txt"很可能是工具的使用指南,涵盖了如何运行shp2sdo.exe,设置参数,以及处理转换过程中可能出现的问题。 7. **系统需求**:使用shp2sdo工具,用户需要有Oracle客户端或数据库连接...
**SDO:打开SOQ标准化之旅** SDO,全称为Service Data Object,是服务导向架构(Service-Oriented Architecture, SOA)中的一个重要概念。它为SOA提供了一种标准的数据表示方式,允许不同系统之间交换和服务化数据...
其中最关键的功能是`sdo_cs.transform`函数,它可以将一个给定的空间对象从一种坐标系统转换到另一种坐标系统。 ##### 函数语法: ```sql sdo_cs.transform( geometry IN OUT NOCOPY MDSYS.SDO_GEOMETRY, from_...
反之,如果你要将Oracle数据库中的地图数据提供给不支持Oracle Spatial的GIS软件,`sdo2shp`就派上用场了。 这两个工具在操作时需要注意兼容性问题,比如Oracle版本与Shapefile的版本匹配,以及正确设置空间参考...
3. **Data Binding**:SDO提供了数据绑定功能,能够将业务逻辑中的数据对象自动映射到XML或其他数据格式,简化了数据的序列化和反序列化过程。 4. **Dynamic Data Objects (DDOs)**:SDO支持动态数据对象,它们可以...
### CANopen实例分析之SDO #### 一、目的: 本次分析旨在通过一个简单的实例,深入探讨和服务数据对象(Service Data Object,简称SDO)在CANopen通信协议中的收发过程。目标是清晰地理解如何利用SDO实现从一个...
Data Graph是SDO的核心,它代表了数据的结构和值,由一系列相互关联的Data Objects组成。Data Object是SDO中的基本单元,代表了数据的一个实体或者一个属性。Data Model定义了数据的结构,可以是XML Schema、Java类...
这个"SDO学习实例"是一个帮助开发者理解并掌握SDO技术的实践项目,虽然不包含所需的jar包,但在资源类表中提供了下载链接。 1. **SDO基础概念**: - **SDO API**:SDO API 提供了创建、访问和管理数据对象的一系列...