0

XSD を XML ファイルに定義したいのですが、それがうまくいかない理由がわかりません。XML ファイルと XSD ファイルの 2 つのファイルがあります。

ここに私の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>

しかし、なぜこのエラーが発生するのかわかりません: ここに画像の説明を入力

ありがとうございました :-)

4

2 に答える 2

0

要素のコンテンツは 1 つだけです。シーケンス、チョイス、すべてなどから選択する必要があります。ただし、これらのコンテンツは構成できます。シーケンスには選択肢などを含めることができます。さらに、「選択」の使い方がよくわかりません。これは、XML にコンテンツのオプションをほとんど与えたくない場合に使用されます。したがって、「auteurT」という要素が 1 つしかないのはあまり意味がありません。たとえば、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」のいずれかを含めることができます。

于 2012-04-18T20:22:12.047 に答える
0

内部に 1 つの要素しかない選択は無意味です (その要素をオプションにすることさえできません)。フォードが色の選択肢を提供していると言っているようなものです。黒を選択できます。

複数の選択肢がある場合は、次のように書くことができます。

<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>
于 2012-04-19T08:04:07.847 に答える