XML Schema:仅包含一个子项的复杂类型

时间:2016-08-05 08:40:43

标签: xml xsd

将元素声明为仅具有一个子元素的复杂类型有什么意义?

我收到了一个XSD文件,引用以下摘录:

if "example" in "this is an example":

我理解From元素(必须在其父元素中只出现一次)由一个序列(必须只出现一次)组成,该序列由唯一的元素Address组成,该元素必须只出现一次并且是一个URI。

虽然To元素(必须在其父元素中出现一次且仅一次)是一个URI。

我是对的吗? 我错过了什么吗?

在插入数据时,用户必须在From元素的Address元素中插入一个且只有一个URI,并且在To元素中直接插入一个且只有一个URI。

在将To定义为简单类型时,将From定义为复杂类型是什么意思?

当设计用户界面以插入“To”和“From”URI时,两者都由一个文本框表示,该文本框必须被验证为格式良好的URI。

将此类XSD结构转换为SQL Server数据库时,“To”和“From”都只是Table中的varchar字段,表示父元素(未在我的摘录中显示),必须将其验证为格式良好URI。

但我仍然认为我错过了一些重要的区别。我吗?

2 个答案:

答案 0 :(得分:1)

可能的原因包括:

  • 您正在限制允许其他孩子的现有文档设计(例如From / Name,或者From / Address的多个实例)
  • 您设想未来的扩展也允许其他孩子
  • 您遵循的设计约定(或使用设计工具集)需要一个名称为值类型(Address)的元素,另一个指示与父元素的关系(From)

答案 1 :(得分:1)

你没有遗漏任何东西:TMTOWTDI不止一种方法)适用于XSD(以及一般的XML),并提供多种设计选择,包括:

  • XML attribute vs XML element considerations 可能会根据Address子结构的未来扩展期望来推动决策 组织或工业惯例等。
  • 可以扩展父From元素以包括其他语义相关元素 为Person
  • 现有的面向对象或关系设计可能会更有针对性 From - Address复杂类型模式。