Changed xmlSchemaFormatIDCKeySequence() to use

* xmlschemas.c: Changed xmlSchemaFormatIDCKeySequence()
  to use xmlSchemaGetCanonValueWhtspExt() in order to
  correctly report values for xs:anySimpleType.
* test/schemas/idc-keyref-err1*
  result/schemas/idc-keyref-err1*: Added a test for this change.
diff --git a/ChangeLog b/ChangeLog
index c5f0c19..fc76f9d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+Fri Nov 11 13:48:52 CET 2005 Kasimier Buchcik <libxml2-cvs@cazic.net>
+
+	* xmlschemas.c: Changed xmlSchemaFormatIDCKeySequence()
+	  to use xmlSchemaGetCanonValueWhtspExt() in order to
+	  correctly report values for xs:anySimpleType.
+	* test/schemas/idc-keyref-err1*
+	  result/schemas/idc-keyref-err1*: Added a test for this change.
+
 Wed Nov  9 13:07:24 EST 2005 Rob Richards <rrichards@ctindustries.net>
 
 	* xmlIO.c xmlwriter.c: function consolidation when writing to xmlBuffer.
diff --git a/result/schemas/idc-keyref-err1_1_0 b/result/schemas/idc-keyref-err1_1_0
new file mode 100644
index 0000000..d4333a9
--- /dev/null
+++ b/result/schemas/idc-keyref-err1_1_0
@@ -0,0 +1 @@
+./test/schemas/idc-keyref-err1_0.xml fails to validate
diff --git a/result/schemas/idc-keyref-err1_1_0.err b/result/schemas/idc-keyref-err1_1_0.err
new file mode 100644
index 0000000..8e9cb20
--- /dev/null
+++ b/result/schemas/idc-keyref-err1_1_0.err
@@ -0,0 +1 @@
+./test/schemas/idc-keyref-err1_0.xml:12: Schemas validity error : Element '{urn:test:foo}Ref': No match found for key-sequence ['L4'] of keyref '{urn:test:foo}LinkKeyRef'.
diff --git a/test/schemas/idc-keyref-err1_0.xml b/test/schemas/idc-keyref-err1_0.xml
new file mode 100644
index 0000000..64a1d0b
--- /dev/null
+++ b/test/schemas/idc-keyref-err1_0.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<Foo
+	xmlns="urn:test:foo"
+	xmlns:foo="urn:test:foo"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="urn:test:foo idc-keyref_1.xsd">
+
+    <Def>
+        <Link foo:linkKey="L4"/>
+    </Def>
+
+    <Ref foo:linkRef="L4"/>
+
+</Foo> 
\ No newline at end of file
diff --git a/test/schemas/idc-keyref-err1_1.xsd b/test/schemas/idc-keyref-err1_1.xsd
new file mode 100644
index 0000000..43c769f
--- /dev/null
+++ b/test/schemas/idc-keyref-err1_1.xsd
@@ -0,0 +1,53 @@
+<?xml version="1.0"?>
+<xs:schema
+    targetNamespace="urn:test:foo"
+    xmlns:xs="http://www.w3.org/2001/XMLSchema"
+    xmlns:foo="urn:test:foo"
+    elementFormDefault="qualified"
+    attributeFormDefault="qualified">
+  
+   <xs:element name="Link">
+       <xs:complexType>
+           <xs:simpleContent>
+               <xs:extension base="xs:string">
+                   <xs:attribute name="linkKey" type="xs:string" use="required"/>
+               </xs:extension>
+           </xs:simpleContent>
+       </xs:complexType>
+   </xs:element>
+      
+    
+  <!--  -->
+  <xs:element name="Foo">
+    <xs:complexType>
+      <xs:sequence>
+	          
+        <xs:element name="Def">
+            <xs:complexType>
+                <xs:sequence>
+                    <xs:element ref="foo:Link"/>
+                </xs:sequence>
+            </xs:complexType>
+        </xs:element>
+        
+        <xs:element name="Ref">
+            <xs:complexType>
+                <xs:attribute name="linkRef" use="required"/>
+            </xs:complexType>
+        </xs:element>
+
+      </xs:sequence>
+	</xs:complexType>      
+
+	<xs:key name="LinkKey">
+	  <xs:selector xpath=".//foo:Link | .//foo:Link"/>
+	  <xs:field xpath="@foo:linkKey"/>
+	</xs:key>
+
+	<xs:keyref name="LinkKeyRef" refer="foo:LinkKey">
+	  <xs:selector xpath=".//foo:Ref"/>
+	  <xs:field xpath="@foo:linkRef"/>
+	</xs:keyref>    
+  </xs:element>
+
+</xs:schema>
\ No newline at end of file
diff --git a/xmlschemas.c b/xmlschemas.c
index d30ad07..f72dc04 100644
--- a/xmlschemas.c
+++ b/xmlschemas.c
@@ -22156,15 +22156,16 @@
 			      int count)
 {
     int i, res;
-    const xmlChar *value = NULL;
+    xmlChar *value = NULL;
 
     *buf = xmlStrdup(BAD_CAST "[");
     for (i = 0; i < count; i++) {
 	*buf = xmlStrcat(*buf, BAD_CAST "'");
-	res = xmlSchemaGetCanonValueWhtsp(seq[i]->val, &value,
-	    xmlSchemaGetWhiteSpaceFacetValue(seq[i]->type));
+	res = xmlSchemaGetCanonValueWhtspExt(seq[i]->val, 
+	    xmlSchemaGetWhiteSpaceFacetValue(seq[i]->type),
+	    &value);
 	if (res == 0)
-	    *buf = xmlStrcat(*buf, value);
+	    *buf = xmlStrcat(*buf, BAD_CAST value);
 	else {
 	    VERROR_INT("xmlSchemaFormatIDCKeySequence",
 		"failed to compute a canonical value");
@@ -22175,7 +22176,7 @@
 	else
 	    *buf = xmlStrcat(*buf, BAD_CAST "'");
 	if (value != NULL) {
-	    xmlFree((xmlChar *) value);
+	    xmlFree(value);
 	    value = NULL;
 	}
     }