在 XSD 复杂类型中包含元素而不添加新元素

发布于 2024-08-08 04:24:11 字数 936 浏览 5 评论 0原文

我有这个复杂类型:

<xsd:complexType name="Identifier">
    <xsd:sequence>
        <xsd:element name="Id" type="xsd:string"/>
        <xsd:element name="Version" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>

现在我想将其包含在另一个复杂类型中,并且我一直这样做:

<xsd:complexType>
    <xsd:sequence>
        <xsd:element name="Id" type="Identifier"/>
              <!-- More elements here -->
    </xsd:sequence>
</xsd:complexType>

但这不是我真正想要的。我想将标识符类型的元素直接包含在我的第二个复杂类型中,而不创建新元素。例如,与这样做相同:

<xsd:complexType>
    <xsd:sequence>
        <xsd:element name="Id" type="xsd:string"/>
        <xsd:element name="Version" type="xsd:string"/>
              <!-- More elements here -->
    </xsd:sequence>
</xsd:complexType>

希望这是有道理的。

提前致谢。

I have this complex type:

<xsd:complexType name="Identifier">
    <xsd:sequence>
        <xsd:element name="Id" type="xsd:string"/>
        <xsd:element name="Version" type="xsd:string"/>
    </xsd:sequence>
</xsd:complexType>

Now I want to include this in another complex type and I've been doing that like this:

<xsd:complexType>
    <xsd:sequence>
        <xsd:element name="Id" type="Identifier"/>
              <!-- More elements here -->
    </xsd:sequence>
</xsd:complexType>

This isn't what I really want though. I want to include the Identifier type's elements directly in my second complex type without creating a new element. E.g. the same as just doing this:

<xsd:complexType>
    <xsd:sequence>
        <xsd:element name="Id" type="xsd:string"/>
        <xsd:element name="Version" type="xsd:string"/>
              <!-- More elements here -->
    </xsd:sequence>
</xsd:complexType>

Hope that makes sense.

Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淤浪 2024-08-15 04:24:12

此复杂类型将始终解析为,

<Identifier>
   <Id>string</Id>
   <Version>string</Version>
</Identifier>

如果您不需要子结构,则

<xsd:element ref="Id"/>
<xsd:element ref="Version"/>

您可以将 Id 和 Version 定义为元素并在稍后使用时引用它们。但这样你就不能保证它们都会发生

你也可以将 Id 和 Version 属性设置为复杂类型中的 Identifier 元素,

祝你好运
麦克风

this complex type will always resolve to

<Identifier>
   <Id>string</Id>
   <Version>string</Version>
</Identifier>

if you don't want a child structure, you could define Id and Version as elements and reference them using

<xsd:element ref="Id"/>
<xsd:element ref="Version"/>

later on. But then you don't have the guarantee that they both occur

You can also make Id and Version attributes to the Identifier element in a complex type

good luck
Mike

极度宠爱 2024-08-15 04:24:11

您可以扩展类型,如下所示:

<xsd:complexType name="MySubType">
    <xsd:complexContent>
        <xsd:extension base="Identifier">
                       <xsd:sequence>
                            <!-- More elements here -->
                       </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>

You can extend types, like this:

<xsd:complexType name="MySubType">
    <xsd:complexContent>
        <xsd:extension base="Identifier">
                       <xsd:sequence>
                            <!-- More elements here -->
                       </xsd:sequence>
        </xsd:extension>
    </xsd:complexContent>
</xsd:complexType>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文