内容模型中不允许使用元素

时间:2012-12-13 20:55:13

标签: xml validation schema

那里。

我正在尝试使用自己制作的架构验证xml文档,并且我一直收到此错误: 验证在第40行第12栏停止:元素'文章'不允许用于内容模型'(book * | article * | mastersthesis * | inproceedings *)'

我的xsd文件格式正确,因此我的xml文件也是如此。第40行只是我的xml文档的末尾(</bibEntry>)。

这是我的xsd文件的一部分:

<xs:element name="bibEntry" type="entryType"/>
 <xs:complexType name="entryType">
  <xs:choice>
    <xs:element ref="book" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element ref="article" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element ref="mastersthesis" minOccurs="0" maxOccurs="unbounded"/>
    <xs:element ref="inproceedings" minOccurs="0" maxOccurs="unbounded"/>
  </xs:choice>
 </xs:complexType>

<xs:element name="author" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="publisher" type="xs:string"/>
<xs:element name="year" type="xs:string"/>
<xs:element name="edition" type="xs:string"/>
<xs:element name="ISBN" type="xs:string"/>
<xs:element name="journal" type="xs:string"/>
<xs:element name="volume" type="xs:positiveInteger"/>
<xs:element name="number" type="xs:positiveInteger"/>
<xs:element name="pages" type="xs:string"/>
<xs:element name="school" type="xs:string"/>
<xs:element name="booktitle" type="xs:string"/>

<xs:element name="book" type="bookType"/>
 <xs:complexType name="bookType">
  <xs:sequence>
    <xs:element ref="author"/>
    <xs:element ref="title"/>
    <xs:element ref="publisher"/>
    <xs:element ref="year"/>
    <xs:element ref="edition"/>
    <xs:element ref="ISBN"/>
   </xs:sequence>
  <xs:attribute name="id" type="xs:NMTOKEN"/>
 </xs:complexType>

 <xs:element name="article" type="articleType"/>
  <xs:complexType name="articleType" mixed="true">
   <xs:sequence>
    <xs:element ref="author"/>
    <xs:element ref="title"/>
    <xs:element ref="year"/>
    <xs:element ref="journal"/>
    <xs:element ref="volume"/>
    <xs:element ref="number"/>
    <xs:element ref="pages"/>
   </xs:sequence>
   <xs:attribute name="id" type="xs:NMTOKEN"/>
 </xs:complexType>

这是我的xml:     

<bibEntry xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com bibEntry.xsd">

  <book>
    <author>José Saramago</author>
    <title>Ensaio Sobre a Cegueira</title>
    <publisher>Caminho</publisher>
    <year>1995</year>
    <edition>1ª</edition>
    <ISBN>9722110217</ISBN>
  </book>

  <article>
    <author>Regev, Oded</author>
    <title>On Lattices, learning with errors, random linear codes and cryptography</title>
    <year>2009</year>
    <journal>Journal of the ACM</journal>
    <volume>56</volume>
    <number>13</number>
    <pages>34</pages>
  </article>

  <mastersthesis>
    <author>Menno den Hollander</author>
    <title>Automatic Unit Test Generation</title>
    <school>Delft University of Technology</school>
    <year>2010</year>
  </mastersthesis>

  <inproceedings>
    <author>Thomas Tilley</author>
    <title>Tool Support for FCA</title>
    <booktitle>ICFCA</booktitle>
    <year>2004</year>
    <pages>104-111</pages>
  </inproceedings>

</bibEntry>

你能看出我做错了吗?

1 个答案:

答案 0 :(得分:0)

您好像很快关闭了元素标签。 而不是

<xs:element name="article" type="articleType"/>

尝试

<xs:element name="article" type="articleType">
 (....)
</xs:element>