春天开始冬眠

O/R mapping 需要注意的问题

 

Xsd extensions

Unportable types

Cycle

 

1.       xsd 扩展

Xsd可以通过扩展来实现对数据的约束,例如:

<simpleType name="Code">
  <restriction base="string">
      <pattern value="[A-Z][A-Z][A-Z]"/>
  </restriction>

</simpleType>

通过一个正则表达式来约定Code的类型是3个大写字母,如果把这个field转换为java String这个约束就失去作用了。

 

2.       不通用的数据类型

这点很好理解,ws之所以流行最核心的特点就是跨平台的互操作性。但有些xml的数据类型是有平台约束的,以前遇到过JAVA程序访问.Net平台的WS时,传送的数据总是有问题

后来发现日期类型的定义是不同的。不能简单的传一个date 对象,而需要对数据进行截位处理。

 

3.       循环定义

这个在java中经常会碰到,比如teachercourse的定义,teacher中可能需要包含几个course

course中也可能包含几个teacher定义.所以TeacherCourse类相互引用。

如果把它们转换到xml就很难定义,虽然可以采用reference的方法来做,但是就不能对xml结构进行验证了。

此外如果使用reference就需要采用SOAP (RPC/encoded),而非document/literal编码

[1]http://static.springframework.org/spring-ws/site/reference/html/why-contract-first.html

posted on 2008-04-23 12:05 crosier 阅读(42) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: