0

我想将 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>

但我不知道为什么会出现这个错误: 在此处输入图像描述

谢谢 :-)

4

2 回答 2

0

element 只能有一个内容 - 您需要在序列、选择、全部等之间进行选择。但是,这些内容可以组合 - 您的序列可以包含选择等。另外,我不确定您对“选择”的使用 - 当您想为 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”。

于 2012-04-18T20:22:12.047 回答
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>
于 2012-04-19T08:04:07.847 回答