gpt4 book ai didi

mysql - 为什么xsd是:complexType not an attribute?

转载 作者:行者123 更新时间:2023-11-29 02:50:23 26 4
gpt4 key购买 nike

我想知道为什么不用写

<xs:element name="elementName">
<xs:complexType>
<xs:sequence>
<xs:element name="subElementName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>

我不能指定它是 xs:complexType 的元素属性吗?或者是否有 xs:superSecretThingIdontKnowAbout 结合了 xs:elementxs:complexType?当我们在这里时,甚至还有一些东西也结合了 xs:sequence。我希望上面的代码可以按以下方式编写。

<xs:superSecretThingIdontKnowAbout name="elementName" sequence="true">
<xs:element name="subElementName" type="xs:string"/>
<xs:superSecretThingIdontKnowAbout>

上下文

由于 XSD 是 XML 并且可以随意扩展,我想补充一点,我正在为 MySQL 数据库中的字段编写架构。我不知道这是否限制了这种可能性。也欢迎任何对此不起作用的答案,因为这将证实我不是唯一一个被这个事实困扰的人。

最佳答案

您唯一缺少的 superSecretThingIdontKnowAbout 是属性更适合表示简单、无结构的值;元素更适合表示结构。参见 XML Elements vs XML Attributes .

复杂类型具有结构;它不是标量。从元素移动到属性会阻碍结构的表达。例如,在您的替代设计中,您将如何表示序列上的出现指示符?更多属性?啊。由混合在子序列中的选择组成的序列怎么样?等等。

大多数人都对 XSD 中缺乏正交性感到遗憾。你的建议会使事情变得更糟。

但是请注意,您可以定义复杂类型并通过属性引用它们:

 <xs:element name="a" type="aType"/>

这对于共享复杂类型定义非常有用。

关于mysql - 为什么xsd是:complexType not an attribute?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36641531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com