Altova Mailing List Archives>Archive Index >microsoft.public.xml Archive Home >Recent entries [Thread Prev] >Thread Next - Re: Key and KeyRefs Key and KeyRefsTo: NULL Date: 4/10/2008 9:35:00 AM Hi,
I am trying to get the below scenario,
Root
Categories
Category 1
ItemRef name=1
Category 2
ItemRef name=1
Items
Item name=1 Desc=
Item name=2 Desc=
But my schema gives me a keyref cannot find key in scope error. Please
suggest what is wrong in my schema.
<?xml version="1.0" encoding="utf-8" ?>
<!-- Created with Liquid XML Studio 1.0.8.0 (http://www.liquid-
technologies.com) -->
<xsd:schema xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="Root">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="Categories" />
<xsd:element minOccurs="1" maxOccurs="1" ref="Items" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Categories">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded"
ref="Category" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Items">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded" ref="Item" />
</xsd:sequence>
</xsd:complexType>
<xsd:key id="ItemReferenceKey1.key" name="ItemReferenceKey1">
<xsd:selector xpath="Items/Item" />
<xsd:field xpath="@ItemName" />
</xsd:key>
<xsd:keyref id="ItemReferenceKeyRef1.keyref"
name="ItemReferenceKeyRef1" refer="ItemReferenceKey1">
<xsd:selector xpath="Categories/Category/ItemReference" />
<xsd:field xpath="@ItemName" />
</xsd:keyref>
</xsd:element>
<xsd:element name="Category">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="unbounded"
ref="ItemReference" />
</xsd:sequence>
<xsd:attribute name="CategoryName" type="xsd:ID" use="required" /
>
</xsd:complexType>
</xsd:element>
<xsd:element name="Item" type="Item" />
<xsd:complexType name="Item">
<xsd:sequence />
<xsd:attribute name="ItemName" type="xsd:ID" use="required" />
<xsd:attribute name="Type" type="xsd:string" />
<xsd:attribute name="Identifier" type="xsd:string" />
<xsd:attribute name="Assembly" type="xsd:string" />
</xsd:complexType>
<xsd:element name="ItemReference">
<xsd:complexType>
<xsd:sequence />
<xsd:attribute name="ItemName" type="xsd:IDREF" use="required" /
>
</xsd:complexType>
</xsd:element>
</xsd:schema>
| ||||||
| Company | Legal | Press | Partners | Careers | Sitemap | Contact Us | Altova Blog | Mobile | Full Site | |||
|
