1

那里。

我正在尝试使用自己制作的架构验证 xml 文档,但我不断收到此错误: 验证在第 40 行第 12 列停止:内容模型'(book*|article*|mastersthesis' 不允许元素'article' *|进行中*)'

我的 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>

你能看出我做错了什么吗?

4

1 回答 1

0

您似乎过早地关闭了元素标签。代替

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

尝试

<xs:element name="article" type="articleType">
 (....)
</xs:element>
于 2016-05-19T13:47:59.337 回答