Java 字符串元素与独立元素中的XML

Java 字符串元素与独立元素中的XML,java,web-services,xsd,design-by-contract,contract,Java,Web Services,Xsd,Design By Contract,Contract,这种请求/响应结构在概念和技术上有哪些缺点: <OrderName> xy </OrderName> <OrderDate> xy </OrderDate> <OrderDetails> xy </OrderDetails> ....lots of other attributes A) 与此请求/响应结构相比 B) …还有很多其他属性 我需要为订单处理设计web服务接口,我正在考虑上面提到的两个备选方案 版本A更通用

这种请求/响应结构在概念和技术上有哪些缺点:

<OrderName> xy </OrderName>
<OrderDate> xy </OrderDate>
<OrderDetails> xy </OrderDetails>
....lots of other attributes
A)

与此请求/响应结构相比

B)


…还有很多其他属性
我需要为订单处理设计web服务接口,我正在考虑上面提到的两个备选方案

版本A更通用,所以当
OrderAttributes
结构以任何方式更改时,接口不需要更改

但是模式验证是不可能的


我的问题是,与版本B相比还有哪些缺点。我是分析师,不是程序员,所以我不能说,是否对解析请求、从合同生成代码等有影响。

首先请注意,在XML中通常使用属性来指代属性可能会造成混淆,其中,属性指与元素分开的特定结构

<element attribute="attribute value">
    <childElement>child element value</childElement>
</element>

子元素值

然后,在进行设计时,您可以考虑哪些属性要表示为XML属性,哪些属性希望表示为XML元素。请参阅以获取帮助

关于您的AB提议的设计,请注意A根本不可行——您不能在一个元素中声明有
xs:string
内容。此外,A将需要进一步解析
OrderAttributes
内容,而B将利用XML解析器处理
OrderAttributes
内容。(而且,正如您所说,B也不会利用XSD验证。)


对于将来的扩展,请考虑使用<强> <强> >,它支持通配符内容的各种解释,通过其<代码>进程内容< /COD> <强> < /强> .< /p> < p>第一个注意到,您对“强>属性< /强>”一词的通用用法在XML中可能会混淆,其中,属性指与元素分开的特定结构

<element attribute="attribute value">
    <childElement>child element value</childElement>
</element>

子元素值

然后,在进行设计时,您可以考虑哪些属性要表示为XML属性,哪些属性希望表示为XML元素。请参阅以获取帮助

关于您的AB提议的设计,请注意A根本不可行——您不能在一个元素中声明有
xs:string
内容。此外,A将需要进一步解析
OrderAttributes
内容,而B将利用XML解析器处理
OrderAttributes
内容。(而且,正如您所说,B也不会利用XSD验证。)

对于将来的扩展,请考虑使用<强> <强>,它支持通配符内容的各种解释,通过其<代码>进程内容< /COD> <强> >/P>的属性值。

<element attribute="attribute value">
    <childElement>child element value</childElement>
</element>