Author: amassari
Date: Wed Jul 29 15:06:26 2009
New Revision: 798938
URL: http://svn.apache.org/viewvc?rev=798938&view=rev
Log:
If an imported schema had a keyref definition, all the others keyref definition
ended up in that schema, and would not be enforced (XERCESC-1583)
Added:
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-imported.xsd
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-main.xsd
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref.xml
Modified:
xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp
xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet
Modified: xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp?rev=798938&r1=798937&r2=798938&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp Wed Jul 29
15:06:26 2009
@@ -8840,9 +8840,7 @@
fIC_NodeListNS = new (fMemoryManager)
RefHashTableOf<ValueVectorOf<DOMElement*>, PtrHasher>(29, true, fMemoryManager);
}
- if (fIC_ElementsNS->containsKey(fTargetNSURIString))
- fIC_Elements = fIC_ElementsNS->get(fTargetNSURIString);
-
+ fIC_Elements = fIC_ElementsNS->get(fTargetNSURIString);
if (!fIC_Elements) {
fIC_Elements = new (fMemoryManager)
ValueVectorOf<SchemaElementDecl*>(8, fMemoryManager);
fIC_ElementsNS->put((void*) fTargetNSURIString, fIC_Elements);
Added:
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-imported.xsd
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-imported.xsd?rev=798938&view=auto
==============================================================================
---
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-imported.xsd
(added)
+++
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-imported.xsd
Wed Jul 29 15:06:26 2009
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:imported" xmlns="urn:imported">
+ <xsd:element name="items">
+ <xsd:complexType>
+ <xsd:sequence minOccurs="1" maxOccurs="unbounded">
+ <xsd:element name="item">
+ <xsd:complexType>
+ <xsd:attribute name="index" type="xsd:integer"/>
+ <xsd:attribute name="parent" type="xsd:integer"/>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="id" type="xsd:integer"/>
+ </xsd:complexType>
+ <xsd:key name="index">
+ <xsd:selector xpath="item"/>
+ <xsd:field xpath="@index"/>
+ </xsd:key>
+ <xsd:keyref name="keyRef" refer="index">
+ <xsd:selector xpath="item"/>
+ <xsd:field xpath="@parent"/>
+ </xsd:keyref>
+ </xsd:element>
+</xsd:schema>
\ No newline at end of file
Added:
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-main.xsd
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-main.xsd?rev=798938&view=auto
==============================================================================
---
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-main.xsd
(added)
+++
xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref-main.xsd
Wed Jul 29 15:06:26 2009
@@ -0,0 +1,20 @@
+<?xml version="1.0"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="urn:main" xmlns="urn:main" xmlns:auto1="urn:imported">
+ <xsd:import schemaLocation="keyref-imported.xsd" namespace="urn:imported"/>
+ <xsd:element name="root">
+ <xsd:complexType>
+ <xsd:sequence maxOccurs="unbounded">
+ <xsd:element ref="auto1:items"/>
+ </xsd:sequence>
+ <xsd:attribute name="main" type="xsd:integer"/>
+ </xsd:complexType>
+ <xsd:unique name="noDuplicate">
+ <xsd:selector xpath="auto1:items"/>
+ <xsd:field xpath="@id"/>
+ </xsd:unique>
+ <xsd:keyref name="parent" refer="auto1:index">
+ <xsd:selector xpath="."/>
+ <xsd:field xpath="@main"/>
+ </xsd:keyref>
+ </xsd:element>
+</xsd:schema>
\ No newline at end of file
Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref.xml
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref.xml?rev=798938&view=auto
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref.xml
(added)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1583/keyref.xml Wed
Jul 29 15:06:26 2009
@@ -0,0 +1,15 @@
+<?xml version="1.0"?>
+<p1:root main="10" xmlns:p2="urn:imported" xmlns:p1="urn:main"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:main keyref-main.xsd">
+ <p2:items id="1">
+ <item index="1"/>
+ <item index="2" parent="1"/>
+ <item index="3" parent="1"/>
+ <item index="4" parent="2"/>
+ </p2:items>
+ <p2:items id="2">
+ <item index="1"/>
+ <item index="2" parent="1"/>
+ <item index="3" parent="1"/>
+ <item index="4" parent="2"/>
+ </p2:items>
+</p1:root>
Modified: xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet
URL:
http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet?rev=798938&r1=798937&r2=798938&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet Wed Jul 29
15:06:26 2009
@@ -342,6 +342,22 @@
<current status="accepted" date="2008-02-13"/>
</instanceTest>
</testGroup>
+ <testGroup name="XERCESC-1583">
+ <annotation>
+ <documentation>keyref are not processing with imported
schema</documentation>
+ </annotation>
+ <documentationReference
xlink:href="https://issues.apache.org/jira/browse/XERCESC-1583"/>
+ <schemaTest name="XERCESC-1583">
+ <schemaDocument
xlink:href="./XERCESC-1583/keyref-main.xsd"/>
+ <expected validity="valid"/>
+ <current status="accepted" date="2009-07-29"/>
+ </schemaTest>
+ <instanceTest name="XERCESC-1583-1">
+ <instanceDocument
xlink:href="./XERCESC-1583/keyref.xml"/>
+ <expected validity="invalid"/>
+ <current status="accepted" date="2009-07-29"/>
+ </instanceTest>
+ </testGroup>
<testGroup name="XERCESC-1591">
<annotation>
<documentation>Mishandling of recursive definition on
complex content restriction</documentation>
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]