此位置不允许使用element <xs:choice> </xs:choice>

时间:2012-04-18 19:00:24

标签: xml xsd

我想将XSD定义为XML文件,但我不知道为什么它对我不起作用。 我有2个文件,XML文件和XSD文件。

  

这是我的XML代码:

<?xml version="1.0" encoding="UTF-8"?>
<article href="http://www.ensa-agadir.ac.ma/arti234" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="C:\Users\Mehdi\Desktop\XMLDS~1\DS1-EX1.xsd">
<titre>application de web sémantique</titre>
<nombrePages>12</nombrePages>
<auteur rond="principale">
    <nom>Hassani</nom>
    <prénom>Jamal</prénom>
    <établissement>Ensa-Agadir</établissement>
</auteur>
<auteur rond="secondaire">
    <nom>Karoum</nom>
    <prénom>Ahmed</prénom>
    <établissement>Ensa-Agadir</établissement>
</auteur>
<auteur rond="secondaire">
    <nom>Roumi</nom>
    <prénom>Jack</prénom>
    <établissement>Ensa-Rouen</établissement>
</auteur>
<résume>Il s'agit d'expliquer comment utiliser et appliquer le web sémantique dans le domaine informatique</résume>

  

和我的架构代码:

<?xml version="1.0" encoding="UTF-8"?>

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

<xs:complexType name="articleT">
    <xs:sequence maxOccurs="1">
            <xs:element name="titre" type="xs:string" />
            <xs:element name="nombrePages" type="nbpagesT" />
    </xs:sequence>

    <xs:choice maxOccurs="unbounded">
            <xs:element name="auteur" type="auteurT" />
    </xs:choice>

</xs:complexType>

<xs:simpleType name="nbpagesT">
    <xs:restriction base="xs:string">
        <xs:pattern value="[1-9]+" />
    </xs:restriction>
</xs:simpleType>

但我不知道为什么会出现这个错误: enter image description here

谢谢: - )

2 个答案:

答案 0 :(得分:0)

元素只能有一个内容 - 你需要在序列,选择,所有等之间进行选择。但是,这些内容可以组成 - 你的序列可以包含选择等等。另外,我不确定您使用“选择” - 当您想要为XML提供少量内容选项时,可以使用此选项。所以只有一个元素“auteurT”没有多大意义。例如,XSD:

<xs:complexType name="phoneT">
  <xs:choice>
    <xs:element name="hardwire" type="xs:string"/>
    <xs:element name="mobile" type="xs:string"/>
  </xs:choice>
</xs:complexType>

如果您为某个元素指定“phoneT”类型,则它可以包含“hardwire”或“mobile”元素。

答案 1 :(得分:0)

在其中只有一个元素的选择是没有意义的(它甚至不会使该元素可选)。就像福特说我们提供颜色选择,你可以选择黑色。

如果有多个选择,您可以写下:

<xs:complexType name="articleT">
    <xs:sequence>
       <xs:element name="titre" type="xs:string" />
       <xs:element name="nombrePages" type="nbpagesT" />
       <xs:choice maxOccurs="unbounded">
          <xs:element name="auteur" type="auteurT" />
          <xs:element name="rédacteur" type="rédacteurT" />
       </xs:choice>
    </xs:sequence>
</xs:complexType>

但我认为您真正想要的内容模型是:

<xs:complexType name="articleT">
    <xs:sequence>
       <xs:element name="titre" type="xs:string" />
       <xs:element name="nombrePages" type="nbpagesT" />
       <xs:element name="auteur" type="auteurT" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
</xs:complexType>
相关问题