You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2008/02/25 16:50:00 UTC

svn commit: r630890 - in /xerces/c/trunk: src/xercesc/validators/schema/TraverseSchema.cpp tests/src/XSTSHarness/regression/XERCESC-1718/ tests/src/XSTSHarness/regression/XERCESC-1718/test.xsd tests/src/XSTSHarness/regression/Xerces.testSet

Author: amassari
Date: Mon Feb 25 07:49:57 2008
New Revision: 630890

URL: http://svn.apache.org/viewvc?rev=630890&view=rev
Log:
Validate the attributes of a simple type definition before trusting its content (XERCESC-1718)

Added:
    xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1718/
    xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1718/test.xsd
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=630890&r1=630889&r2=630890&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp (original)
+++ xerces/c/trunk/src/xercesc/validators/schema/TraverseSchema.cpp Mon Feb 25 07:49:57 2008
@@ -1203,6 +1203,7 @@
                                        const bool topLevel, int baseRefContext)
 {
     NamespaceScopeManager nsMgr(childElem, fSchemaInfo, this);
+
     // ------------------------------------------------------------------
     // Process contents
     // ------------------------------------------------------------------
@@ -1215,6 +1216,16 @@
         return 0;
     }
 
+    // -------------------------------------------------------------------
+    // Check attributes
+    // -------------------------------------------------------------------
+    unsigned short scope = (topLevel) ? GeneralAttributeCheck::E_SimpleTypeGlobal
+                                      : GeneralAttributeCheck::E_SimpleTypeLocal;
+
+    fAttributeCheck.checkAttributes(
+        childElem, scope, this, topLevel, fNonXSAttList
+    );
+
     if (nameEmpty) { // anonymous simpleType
         name = genAnonTypeName(fgAnonSNamePrefix);
     }
@@ -1236,16 +1247,6 @@
     DatatypeValidator* dv = fDatatypeRegistry->getDatatypeValidator(fullName);
 
     if (!dv) {
-
-        // -------------------------------------------------------------------
-        // Check attributes
-        // -------------------------------------------------------------------
-        unsigned short scope = (topLevel) ? GeneralAttributeCheck::E_SimpleTypeGlobal
-                                          : GeneralAttributeCheck::E_SimpleTypeLocal;
-
-        fAttributeCheck.checkAttributes(
-            childElem, scope, this, topLevel, fNonXSAttList
-        );
 
         // Circular constraint checking
         if (fCurrentTypeNameStack->containsElement(fullTypeNameId)) {

Added: xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1718/test.xsd
URL: http://svn.apache.org/viewvc/xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1718/test.xsd?rev=630890&view=auto
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1718/test.xsd (added)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/XERCESC-1718/test.xsd Mon Feb 25 07:49:57 2008
@@ -0,0 +1,21 @@
+<?xml version="1.0"?>
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:t="test" targetNamespace="test">
+
+  <simpleType name="list">
+    <list itemType="string"/>
+  </simpleType>
+
+  <complexType name="type">
+    <sequence>
+      <element name="efoo" type="string"/>
+    </sequence>
+    <attribute name="abar">
+      <simpleType name="list">
+        <list itemType="string"/>
+      </simpleType>
+    </attribute>
+  </complexType>
+
+  <element name="root" type="string"/>
+
+</schema>

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=630890&r1=630889&r2=630890&view=diff
==============================================================================
--- xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet (original)
+++ xerces/c/trunk/tests/src/XSTSHarness/regression/Xerces.testSet Mon Feb 25 07:49:57 2008
@@ -365,6 +365,17 @@
 			<current status="accepted" date="2008-02-13"/>
 		</schemaTest>
 	</testGroup>
+	<testGroup name="XERCESC-1718">
+		<annotation>
+			<documentation>Invalid anonymous type definition with the name attribute is not caught in some situations</documentation>
+		</annotation>
+		<documentationReference xlink:href="https://issues.apache.org/jira/browse/XERCESC-1718"/>
+		<schemaTest name="XERCESC-1718">
+			<schemaDocument xlink:href="./XERCESC-1718/test.xsd"/>
+			<expected validity="invalid"/>
+			<current status="accepted" date="2008-02-25"/>
+		</schemaTest>
+	</testGroup>
 	<testGroup name="XERCESC-1745">
 		<annotation>
 			<documentation>Inheritance by restriction does not detect a missing type from an imported schema</documentation>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org