2010-09-20 750 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”会有帮助吗?