2010-09-20 9 views
1

Je reçois ce message d'erreur lors de la validation de mon fichier XML par rapport à son schéma. Quelqu'un peut-il suggérer ce qui pourrait être faux? Le fichier XML est:Erreur de validation [Il n'y a pas de liaison ID/IDREF pour IDREF]

<?xml version="1.0"?> 
<family-tree xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:noNamespaceSchemaLocation="ftree.xsd"> 

<person id="p5"> 
<name> 
<given>Al Frank</given> 
<surname>Smith</surname> 
</name> 
</person> 

<person id="p6"> 
<name> 
<given>Henry</given> 
<surname>Smith</surname> 
</name> 
<father ref="p5"/> 
</person> 

</family-tree> 

Le schéma est le suivant:

<?xml version="1.0" encoding="UTF-8"?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 

<xsd:element name="family-tree"> 
<xsd:complexType> 
<xsd:sequence> 
<xsd:element name="person" minOccurs="0" maxOccurs="unbounded"/> 
</xsd:sequence> 
</xsd:complexType> 
</xsd:element> 

<xsd:element name="person"> 
<xsd:complexType> 
<xsd:sequence> 
<xsd:element name="name" minOccurs="0" maxOccurs="unbounded"/> 
<xsd:element name="father" minOccurs="0"/> 
</xsd:sequence> 
<xsd:attribute name="id" use="required" type="xsd:ID"/> 
</xsd:complexType> 
</xsd:element> 

<xsd:element name="name"> 
<xsd:complexType> 
<xsd:sequence> 
<xsd:element minOccurs="0" name="given"/> 
<xsd:element minOccurs="0" name="surname"/> 
</xsd:sequence> 
</xsd:complexType> 
</xsd:element> 

<xsd:element name="given" type="xsd:string"/> 
<xsd:element name="surname" type="xsd:string"/> 

<xsd:element name="father"> 
<xsd:complexType> 
<xsd:attribute name="ref" use="required" type="xsd:IDREF"/> 
</xsd:complexType> 
</xsd:element> 

</xsd:schema> 
+0

Est-ce un devoir ou quelque chose? Il y a une question identique sur IBM developerworks il y a 2 ans. –

+0

Ouais ..pour moi ce n'est pas un devoir ou quoi que ce soit .. je cherchais un scénario similaire .... –

+1

Savez-vous ce qui cause? – codevour

Répondre

0

Quel analyseur XML utilisez-vous? Peut-être votre analyseur n'aime pas le fait que vous avez un identifiant qui n'est référencé nulle part dans le document. Cependant, je ne me souviens pas d'avoir lu une telle exigence. Peut-être que l'ajout de standalone = "non" à la déclaration XML (<? Xml version = "1.0" standalone = "non"?>) Vous aidera?