在模式中定义XML元素长度的最佳实践是什么?

时间:2011-05-09 20:24:05

标签: xml xsd

在架构中定义XML元素长度的最佳做法是什么?您是否应该强烈键入元素,以便它们反映数据点的最终持久性的字段长度,或者是否应保留未定义的元素,以便更好地适应字段长度的潜在未来变化,因为它是持久的(并在其他地方使用)一个系统)?有没有一个很好的经验法则可以做一个与另一个相比,例如公开暴露模式的强类型而不是内部使用?

2 个答案:

答案 0 :(得分:2)

你提出的经验法则对我来说听起来和其他事情一样合理。实际上,这将是一个案例问题,模式的消费者(商业人士,内部和外部开发商等......)需要就其使用达成一致。

面向外部的架构是您与使用此架构的人员(及其计算机系统)的合同。所以,是的,您应该尽可能地使用模式来表达您对传入数据的期望 - 没有什么比传递一个充满xs:任何元素的模式更糟糕了!

如果元素的内容大于给定长度会导致错误,那么将该信息放在模式中。

然而,在现实世界中,您经常会发现因某种原因需要改变的情况。内部模式的妥协与更宽松的限制将为您节​​省一些痛苦。在将大量外部模式映射到内部模式时,通常会有一个由内部模式表示的 super 需求集。虽然这当然意味着你的内部错误处理需要更强大。

答案 1 :(得分:2)

我认为对字段长度施加限制有两个正当理由。

(a)限制确实存在于现实世界中 - 英国的车辆登记总是7个字符

(b)您希望保护软件免受无法处理的输入数据的影响。个人名称可以超过40个字符,但是您有一个遗留的应用程序无法处理更多,因此您希望防止更长的名称到达它。

不要因为你认为应该有限制而施加限制。默认情况下,不应该。我们不再生活在打孔卡的世界里。