2016-08-05 91 views
0

将元素声明为仅具有一个子元素的复杂类型的要点是什么?XML架构:只有一个孩子的复杂类型

我被赋予从我引用以下摘录XSD文件:

<xsd:element name="From"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="Address" type="xsd:anyURI"/> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 
  
<xsd:element name="To" type="xsd:anyURI"/> 

据我所知,从元件(其必须出现一次且仅在其父一次)由序列(其必须发生一次且仅发生一次)由唯一的元素地址组成,该地址必须只出现一次,并且是一个URI。

To元素(其父元素必须出现一次且只有一次)是一个URI。

我对不对? 我错过了什么吗?

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

将定义为一个简单类型定义为复杂类型时,哪一点是定义的?

当谈到设计用户界面插入“To”和“From”URI时,两者都必须通过一个文本框来表示,该文本框必须被验证为格式正确的URI。

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

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

回答

1

可能原因包括:

  • 您都制约现有文档的设计,它允许其他的孩子们(例如,从/名称,或从/地址的多个实例)
  • 你设想未来的扩展,允许其他孩子使用
  • 您正在遵循一个设计约定(或使用设计工具集),该设计约定需要名称为值类型的元素(地址),另一个指示与父元素的关系(来自)
1

您不会错过任何东西:TMTOWTDI有做不止一种方法)适用于XSD(和XML一般),并提供多个设计方案,包括:

  • XML attribute vs XML element considerations单独 可能推动基于未来扩展期望的决定,基于子结构的Address,管理 组织或工业惯例等
  • 元素可能会扩展到包括其他语义相关元素,如 as Person
  • 现有的OO或关系设计的目标可能更适合复杂类型模式。
相关问题