gpt4 book ai didi

XML 架构 - 如何更改引用元素的名称?

转载 作者:数据小太阳 更新时间:2023-10-29 01:45:22 26 4
gpt4 key购买 nike

我是 XML Schema 菜鸟,这是我的第一个 Stack Overflow 问题。请原谅我对两者的标准和礼仪的无知。

在一个 XML 模式文件 (.xsd) 中,我包含了另一个模式(在我的控制之外),它代表了我的团队正在使用的一种事实上的标准。在外部模式中是一个具有长名称的复杂元素:

<xs:element name="AnnoyingLongElementNameOfSuffering">
<xs:complexType>
<xs:sequence>
...sub-elements galore...
</xs:sequence>
</xs:complexType>
</xs:element>

在我的模式文件中,有问题的元素被复制了,我认为这是不好的做法,并且它被赋予了一个缩写的小名字。我想要做的是用对其他模式中原始代码的引用替换复制的代码,但我需要维护这个小名称,它已经在现有实例文件中使用(也在我的控制之外)。我想做类似的事情:

<xsd:element name="TinyName" ref="AnnoyingLongElementNameOfSuffering"/>

但是,'name' 和 'ref' 属性是相互排斥的。我无法重新定义它并重新列出子元素,因为它们没有在其他模式中全局声明。我不能创建派生类型,因为它被定义为另一个模式中的元素而不是类型。 las,我的搜索都没有产生任何帮助,大概是因为您通常会更改元素名称或修改其他文件,这对我来说都不是一个选项。可能有一个简单的答案,所以我期待您的启发性答复。

最佳答案

尝试:

<xsd:element name="TinyName" substitutionGroup="AnnoyingLongElementNameOfSuffering"/>

另外,告诉维护标准的人停止使用匿名复杂类型(在元素内定义内联)。大多数大标准使用基于定义类型而不是元素的方法是有原因的:这样您就可以从类型中派生或重用它们。您的内部标准可以很容易地迁移到这个而不会失去兼容性:保留元素,但为它们分配明确的类型。

关于XML 架构 - 如何更改引用元素的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5955142/

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