2010-09-20 752 views
1

當我的XML文件根據Schema驗證時,出現此錯誤消息。任何人都可以提出什麼可能是錯的? XML文件是:驗證錯誤[沒有IDREF的ID/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> 

的模式是:

<?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

這是一個功課或什麼? IBM開發人員工作坊在兩年前有一個相同的問題。 – 2010-09-21 10:30:11

+0

是的..對我來說,它不是一個家庭作業或任何東西..我正在尋找類似的情況.... – 2010-09-22 03:06:00

+1

你知道這是什麼原因嗎? – codevour 2011-03-14 16:30:23

回答

0

哪些XML解析器您使用的?也許你的解析器不喜歡你有一個在文檔中任何地方都沒有引用的id。但是,我不記得讀過這樣的要求。也許向XML聲明(<?xml version =「1.0」standalone =「no」?>)添加standalone =「no」會有幫助嗎?