constraint not declared

Bart V

Usenet Archive
Joined
Apr 23, 2004
Messages
3
Reaction score
0
If I try to load a xml schema in a dataset I get this error:
The 'CDSKey1' identity constraint is not declated. An error occurred at file:///C:/Doc.../CDLib.xsd, (36, 4).

Here is the schema:

<?xml version="1.0" standalone="yes" ?>
<xsd:schema id="CDLib" targetNamespace="CDLib" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="CDS" msdata:IsDataSet="true" msdata:Locale="en-GB"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="CD"> <xsd:complexType> <xsd:sequence> <xsd:element name="ID" type="xsd:integer" minOccurs="0" /> <xsd:element name="DevID" type="xsd:integer" minOccurs="0" /> <xsd:element name="PosID" type="xsd:integer" minOccurs="0" /> <xsd:element name="Title" type="xsd:string" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Art"> <xsd:complexType> <xsd:sequence> <xsd:element name="ID" type="xsd:integer" minOccurs="0" /> <xsd:element name="CDID" type="xsd:integer" minOccurs="0" /> <xsd:element name="Data" type="xsd:string" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> <xsd:key name="CDSKey1" msdata:primaryKey="true"> <xsd:selector xpath=".//CD" /> <xsd:field xpath="ID" /> </xsd:key> <xsd:key name="CDSKey2" msdata:primaryKey="true"> <xsd:selector xpath=".//Art" /> <xsd:field xpath="ID" /> </xsd:key> <xsd:keyref name="CDArt" refer="CDSKey1"> <xsd:selector xpath=".//Art" /> <xsd:field xpath="CDID" /> </xsd:keyref> </xsd:element> </xsd:schema>
 

Henry S. Thompson

Usenet Archive
Joined
Jan 14, 2000
Messages
309
Reaction score
0
If I try to load a xml schema in a dataset I get this error:
The 'CDSKey1' identity constraint is not declated. An error occurred at file:///C:/Doc.../CDLib.xsd, (36, 4).

Here is the schema:

<?xml version="1.0" standalone="yes" ?>
<xsd:schema id="CDLib" targetNamespace="CDLib" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> .. . . <xsd:keyref name="CDArt" refer="CDSKey1"> <xsd:selector xpath=".//Art" /> <xsd:field xpath="CDID" /> </xsd:keyref>

Like all names declared in a schema, CDSKey1 is declared in your target namespace, so you need a proper qualified name to refer to it.

So add xmlns:cdl="CDLib" to your xsd:schema element, and change your xsd:keyref to say refer="cdl:CDSKey1"

You will also need to change all your XPaths to use this prefix as well, or none of them will match.

ht
 

Bart V

Usenet Archive
Joined
Apr 23, 2004
Messages
3
Reaction score
0
Henry said:
. . .

Like all names declared in a schema, CDSKey1 is declared in your target namespace, so you need a proper qualified name to refer to it.

So add xmlns:cdl="CDLib" to your xsd:schema element, and change your xsd:keyref to say refer="cdl:CDSKey1"

You will also need to change all your XPaths to use this prefix as well, or none of them will match.

ht
Hi I did what u said, but I think I'm doiing something wrong. Now I doesn give me errors it gives me nothing! It dont load the schematic. Here is the altered schematic:
<?xml version="1.0" standalone="yes" ?>
<xsd:schema id="CDLib" targetNamespace="CDLib" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:cdl="CDLib"> <xsd:element name="CDS" msdata:IsDataSet="true" msdata:Locale="en-GB"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="CD"> <xsd:complexType> <xsd:sequence> <xsd:element name="ID" type="xsd:integer" minOccurs="0" /> <xsd:element name="DevID" type="xsd:integer" minOccurs="0" /> <xsd:element name="PosID" type="xsd:integer" minOccurs="0" /> <xsd:element name="Title" type="xsd:string" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="Art"> <xsd:complexType> <xsd:sequence> <xsd:element name="ID" type="xsd:integer" minOccurs="0" /> <xsd:element name="CDID" type="xsd:integer" minOccurs="0" /> <xsd:element name="Data" type="xsd:string" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:choice> </xsd:complexType> <xsd:key name="CDSKey1" msdata:primaryKey="true"> <xsd:selector xpath=".//CD" /> <xsd:field xpath="ID" /> </xsd:key> <xsd:key name="CDSKey2" msdata:primaryKey="true"> <xsd:selector xpath=".//Art" /> <xsd:field xpath="ID" /> </xsd:key> <xsd:keyref name="CDArt" refer="cdl:CDSKey1"> <xsd:selector xpath=".//Art" /> <xsd:field xpath="CDID" /> </xsd:keyref> </xsd:element> </xsd:schema>
 

Bart V

Usenet Archive
Joined
Apr 23, 2004
Messages
3
Reaction score
0
Oeps my mistake I didn't load in the datagrid, it works now thx for your help.

grtz Bart
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
548,208
Messages
3,104,798
Members
249,594
Latest member
henrywalsh

Latest Threads

Top