xml - XSD 架构错误 - cvc-complex-type.2.4b:不允许元素:元素设置组中的设置值
问题描述
我的 XSD 架构有问题。我不断收到标题中提到的错误。我不明白为什么它说某个元素不允许在另一个元素中使用。它不会抱怨,'accessrights'
但它会抱怨'settingvalue'
它们两者基本相同(只是一些基本元素;字符串和布尔值)。
有人知道它为什么抱怨吗?我正在使用Apache XMLBeans 3.0.1
(来自 Windows 10 CMD)来尝试验证架构。
完整的 XSD 架构文件。
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Define the simple elements -->
<xs:element name="creationtime" type="xs:string"/>
<xs:element name="customerkey" type="xs:string"/>
<xs:element name="dependency" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="enable" type="xs:boolean"/>
<xs:element name="group_id" type="xs:string"/>
<xs:element name="groupname" type="xs:string"/>
<xs:element name="iamid" type="xs:string"/>
<xs:element name="id" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="readonly" type="xs:boolean"/>
<xs:element name="settingscategory" type="xs:string"/>
<xs:element name="show" type="xs:boolean"/>
<xs:element name="specification_id" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
<xs:element name="valuepack" type="xs:string"/>
<!-- Define the 'accessrights' element -->
<xs:element name="accessrights">
<xs:complexType>
<xs:sequence>
<xs:element ref="id"/>
<xs:element ref="show"/>
<xs:element ref="readonly"/>
<xs:element ref="enable"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Define the 'settingvalue' element -->
<xs:element name="settingvalue">
<xs:complexType>
<xs:sequence>
<xs:element ref="id"/>
<xs:element ref="specification_id"/>
<xs:element ref="value"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Define the 'settingsgroup' element -->
<xs:element name="settingsgroup">
<xs:complexType>
<xs:sequence>
<xs:element ref="group_id"/>
<xs:element ref="groupname"/>
<xs:element ref="accessrights" minOccurs="0"/>
<xs:element ref="settingvalue"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Define the 'settings' element -->
<xs:element name="settings">
<xs:complexType>
<xs:sequence>
<xs:element ref="id"/>
<xs:element ref="settingscategory"/>
<xs:element ref="name"/>
<xs:element ref="settingsgroup" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!-- Define the 'license' element -->
<xs:element name="license">
<xs:complexType>
<xs:sequence>
<xs:element ref="id"/>
<xs:element ref="dependency" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="name"/>
<xs:element ref="creationtime" minOccurs="0"/>
<xs:element ref="valuepack" minOccurs="0"/>
<xs:element ref="iamid" minOccurs="0"/>
<xs:element ref="customerkey" minOccurs="0"/>
<xs:element ref="description" minOccurs="0"/>
<xs:element ref="settings"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
符合模式的 XML 的示例可能如下所示
<license>
<id>IDString</id>
<dependency>IDStringOfOtherLicense</dependency>
<name>LicenseName</name>
<creationtime>2016-08-17 10:05:00</creationtime>
<customerkey>googlemaybe</customerkey>
<description>importantDetails</description>
<settings>
<id>IDString</id>
<settingscategory>license</settingscategory>
<name>SettingName</name>
<settingsgroup>
<group_id>groupIDString</group_id>
<groupname>oldstuff</groupname>
<settingvalue>
<id>IDString</id>
<specification_id>specIDString</specification_id>
<value>true</value>
</settingvalue>
</settingsgroup>
</settings>
</license>
解决方案
推荐阅读
- android - java.lang.RuntimeException:错误:03000068:bignum 例程:OPENSSL_internal:CALLED_WITH_EVEN_MODULUS
- ionic-framework - 带有 couchdb 的 Ionic 网站被公司网络封锁
- ansible - ANSIBLE:有没有办法为 vars 文件中的嵌套动态变量赋值?
- javascript - 如何在 devtools 网络上隐藏 mp4 视频?
- node.js - 使用 excel4node 在文件上写入大数据并使用大量时间下载并阻止所有其他 I/O 操作
- vba - 如何绕过空白/空 MailItem.To 属性的测试?
- ruby-on-rails - 如何使用 Ruby Tap 方法预填充种子数据
- sql - 使用 CHARINDEX 和 LEN 在 SUBSTRING 之后将 NVARCHAR 转换为 INT
- react-native - 使用 react-native-google-signin 无限期加载 youtube 的范围
- javascript - 使用选择器访问动态创建的元素