首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >XML中组与complexType之间的complexType?

XML中组与complexType之间的complexType?
EN

Stack Overflow用户
提问于 2018-03-02 15:50:47
回答 1查看 2.1K关注 0票数 5

根据w3schoolsgroup元素是complexType元素的子元素。下面的XML文件(XSD)可以互换使用吗?

没有组元素的XSD

代码语言:javascript
复制
<xs:complexType name="personInfo">
    <xs:sequence>
        <xs:element name="firstName" type="xs:string"/>
        <xs:element name="lastName" type="xs:string"/>
    </xs:sequence>
    <xs:attribute name="personId" type="xs:string"  use="required"/>
</xs:complexType>

<xs:element name="person" type="personInfo"/>

具有组元素的XSD :

代码语言:javascript
复制
<xs:group name="personGroup">
  <xs:sequence>
    <xs:element name="firstName" type="xs:string"/>
    <xs:element name="lastName" type="xs:string"/>
  </xs:sequence>
  <xs:attribute name="personId" type="xs:string"  use="required"/>
</xs:group>

<xs:complexType name="personInfo">
  <xs:group ref="personGroup"/>
</xs:complexType>

<xs:element name="person" type="personInfo"/>

如果是的话,他们有什么区别?当group具有相同的效果时,为什么要使用complexType元素?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-02-10 23:37:11

您在“XSD with group元素”示例中的内容是不正确的:

代码语言:javascript
复制
<xs:group name="personGroup">
  <xs:sequence>
    <xs:element name="firstName" type="xs:string"/>
    <xs:element name="lastName" type="xs:string"/>
  </xs:sequence>
  <!-- Wrong -->
  <xs:attribute name="personId" type="xs:string"  use="required"/>
</xs:group>

不能在<xs:group>根目录中定义属性。您可以有一个包含元素的组,这些元素可以有它们自己的属性。这实际上是组和复杂类型之间的区别之一。

组只能包含内容模型或注释(也就是说,它们的直接子元素只能是3:<xs:all /><xs:choice /><xs:sequence />或文档元素之一)。见第3.7.2节下的定义

代码语言:javascript
复制
<group
  id = ID
  maxOccurs = (nonNegativeInteger | unbounded)  : 1
  minOccurs = nonNegativeInteger : 1
  name = NCName
  ref = QName
  {any attributes with non-schema namespace . . .}>
  Content: (annotation?, (all | choice | sequence)?)
</group>

复杂类型的行为非常相似,因为它们也可以具有与组相同的内容模型,但也可以定义<xs:attributes>。您甚至可以有只定义属性的复杂类型,这些属性是您不能对组进行的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49072644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档