s4s-elt-invalid-content.1:内容无效。元素 'attribute' 无效、放错位置或出现太频繁
s4s-elt-invalid-content.1: Content is invalid. Element 'attribute' is invalid, misplaced, or occurs too often
我正在为一个项目XSD工作,这是我得到的:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Elizabeth schema"
xmlns:elz="http://www.example.org/Elizabeth_schema" elementFormDefault="qualified">
<xs:element name ="year">
<xs:complexType mixed = "true">
<xs:sequence>
<xs:element name="entry">
<xs:complexType mixed ="true">
<xs:simpleContent>
<xs:attribute name ="when" type = "xs:string"/>
<xs:attribute name = "place" type = "xs:string"/>
<xs:element name = "items" type = "xs:string"/>
<xs:element name = "characters">
<xs:complexType>
<xs:attribute name ="character" type = "xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name = "eventscollection">
<xs:complexType>
<xs:attribute name = "type" type = "xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name ="entrytxt">
<xs:complexType>
<xs:any minOccurs = "0"/>
<xs:anyAttribute minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我还没有将 xls 指向模式,因为我想先让模式工作。我的 IDE 给我一个错误:
s4s-elt-invalid-content.1: The content of '#AnonType_entryyear' is
invalid. Element 'attribute' is invalid, misplaced, or occurs too
often.
第 11 行是我在元素下引入第一个属性的地方 "entry." 我发现如果我删除第 10 行 ("simpleContent"),我会得到同样的错误,但是在第 13 行我在"entry."
下引入第一个元素
我是这方面的初学者,我已经在 Internet 上进行了一些尝试,但似乎无法弄清楚我的代码有什么问题。有什么想法吗?
您的 XSD 有很多问题,包括
entry
没有简单的内容。将 xs:simpleContent
更改为
xs:sequence
在 xs:complexType
. 内
- 然后,将
xs:attribute
声明移到 xs:sequence
之外。
- 从
xs:anyAttribute
中删除 minOccurs
。
请注意,您可能想要删除属性 =
符号周围的间距 -- 不是必需的,但它看起来很不合常规,而且与您所拥有的不一致。
这是您的 XSD 完全更正:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Elizabeth schema"
xmlns:elz="http://www.example.org/Elizabeth_schema"
elementFormDefault="qualified">
<xs:element name="year">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="entry">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="items" type="xs:string"/>
<xs:element name="characters">
<xs:complexType>
<xs:attribute name="character" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="eventscollection">
<xs:complexType>
<xs:attribute name="type" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="entrytxt">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="when" type="xs:string"/>
<xs:attribute name="place" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我正在为一个项目XSD工作,这是我得到的:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Elizabeth schema"
xmlns:elz="http://www.example.org/Elizabeth_schema" elementFormDefault="qualified">
<xs:element name ="year">
<xs:complexType mixed = "true">
<xs:sequence>
<xs:element name="entry">
<xs:complexType mixed ="true">
<xs:simpleContent>
<xs:attribute name ="when" type = "xs:string"/>
<xs:attribute name = "place" type = "xs:string"/>
<xs:element name = "items" type = "xs:string"/>
<xs:element name = "characters">
<xs:complexType>
<xs:attribute name ="character" type = "xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name = "eventscollection">
<xs:complexType>
<xs:attribute name = "type" type = "xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name ="entrytxt">
<xs:complexType>
<xs:any minOccurs = "0"/>
<xs:anyAttribute minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
我还没有将 xls 指向模式,因为我想先让模式工作。我的 IDE 给我一个错误:
s4s-elt-invalid-content.1: The content of '#AnonType_entryyear' is invalid. Element 'attribute' is invalid, misplaced, or occurs too often.
第 11 行是我在元素下引入第一个属性的地方 "entry." 我发现如果我删除第 10 行 ("simpleContent"),我会得到同样的错误,但是在第 13 行我在"entry."
下引入第一个元素我是这方面的初学者,我已经在 Internet 上进行了一些尝试,但似乎无法弄清楚我的代码有什么问题。有什么想法吗?
您的 XSD 有很多问题,包括
entry
没有简单的内容。将xs:simpleContent
更改为xs:sequence
在xs:complexType
. 内
- 然后,将
xs:attribute
声明移到xs:sequence
之外。 - 从
xs:anyAttribute
中删除minOccurs
。
请注意,您可能想要删除属性 =
符号周围的间距 -- 不是必需的,但它看起来很不合常规,而且与您所拥有的不一致。
这是您的 XSD 完全更正:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Elizabeth schema"
xmlns:elz="http://www.example.org/Elizabeth_schema"
elementFormDefault="qualified">
<xs:element name="year">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="entry">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="items" type="xs:string"/>
<xs:element name="characters">
<xs:complexType>
<xs:attribute name="character" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="eventscollection">
<xs:complexType>
<xs:attribute name="type" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="entrytxt">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="when" type="xs:string"/>
<xs:attribute name="place" type="xs:string"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>