gpt4 book ai didi

xml - 同名、不同类型的多个元素出现在模型组中

转载 作者:行者123 更新时间:2023-12-05 06:45:03 28 4
gpt4 key购买 nike

我写了我遇到的问题,但现在我展示了所有代码xml文件

<?xml version="1.0"?>
<Purchase xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://NamespaceTest.com/Purchase Main.xsd"
xmlns="http://NamespaceTest.com/Purchase">

<element style="ide">it can't contain other elements</element>
<element style="rem">it can contain some other <subelement>elements</subelement></element>
<element style="rem"> this style can contain other<subelement> elements</subelement></element>
</Purchase>

和Main.xsd文件

<?xml version="1.0" encoding="utf-16"?>
<xs:schema elementFormDefault="qualified"
targetNamespace="http://NamespaceTest.com/Purchase"
xmlns:pur="http://NamespaceTest.com/Purchase"
xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:element name="Purchase">
<xs:complexType>
<xs:sequence>
<xs:group ref="pur:ide_group" maxOccurs="1"/>
<xs:group ref="pur:rem_group" maxOccurs="2" />
</xs:sequence>
</xs:complexType>
</xs:element>


<xs:group name="ide_group">
<xs:sequence>
<xs:element name="element" type="pur:ide_type"/>
</xs:sequence>
</xs:group>
<xs:complexType name="ide_type" mixed="true">
<xs:attribute name="style" type="pur:ide_list"/>
</xs:complexType>
<xs:simpleType name="ide_list">
<xs:restriction base="xs:token">
<xs:enumeration value="ide"/>
</xs:restriction>
</xs:simpleType>

<xs:group name="rem_group">
<xs:sequence>
<xs:element name="element" type="pur:rem_type"/>
</xs:sequence>
</xs:group>
<xs:complexType name="rem_type" mixed="true">
<xs:sequence>
<xs:element name="subelement"/>
</xs:sequence>
<xs:attribute name="style" type="pur:rem_list"/>
</xs:complexType>
<xs:simpleType name="rem_list">
<xs:restriction base="xs:token">
<xs:enumeration value="rem"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

我有错误:cos-element-consistent:类型“#AnonType_Purchase”的错误。名称为“element”的多个元素,具有不同的类型,出现在模型组中。我的问题是 xml 文件具有名称相同但样式不同的元素,我需要制定依赖于元素样式的规则。

最佳答案

您有几个选择:

  • 如果您可以使用 XSD 1.1,则可以使用条件类型分配或断言对具有相同名称和声明类型的同级元素施加不同的约束。

  • 您可以修改 XML 的设计,以便为您拥有的不同元素类型使用不同的元素类型名称。 (很明显它们是不同的元素类型:你想为它们分配不同的类型。既然它们不同,为什么要用相同的名称来调用它们?)

对于 XSD,您不能做的是声明具有不同类型的同名同级元素;该语言要求任何元素的声明类型都可以通过仅考虑从验证根到元素的路径来确定。

关于xml - 同名、不同类型的多个元素出现在模型组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26524614/

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