Author: knoaman
Date: Mon Apr 26 15:01:13 2010
New Revision: 938077

URL: http://svn.apache.org/viewvc?rev=938077&view=rev
Log:
anyAtomicType cannot be used as a base of simple type restriction.
Jira bug: https://issues.apache.org/jira/browse/XERCESJ-1437

Modified:
    
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaGrammar.java
    
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java
    
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
    
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDSimpleTypeTraverser.java

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaGrammar.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaGrammar.java?rev=938077&r1=938076&r2=938077&view=diff
==============================================================================
--- 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaGrammar.java
 (original)
+++ 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaGrammar.java
 Mon Apr 26 15:01:13 2010
@@ -1367,6 +1367,7 @@ public class SchemaGrammar implements XS
     private final static BuiltinSchemaGrammar SG_Schema11NS = new 
BuiltinSchemaGrammar(GRAMMAR_XS, Constants.SCHEMA_VERSION_1_1);
 
     public final static XSSimpleType fAnySimpleType = 
(XSSimpleType)SG_SchemaNS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_ANYSIMPLETYPE);
+    public final static XSSimpleType fAnyAtomicType = 
(XSSimpleType)SG_Schema11NS.getGlobalTypeDecl(SchemaSymbols.ATTVAL_ANYATOMICTYPE);
 
     // the grammars to hold components of the schema-instance namespace
     public final static BuiltinSchemaGrammar SG_XSI = new 
BuiltinSchemaGrammar(GRAMMAR_XSI, Constants.SCHEMA_VERSION_1_0);

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java?rev=938077&r1=938076&r2=938077&view=diff
==============================================================================
--- 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java
 (original)
+++ 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/SchemaSymbols.java
 Mon Apr 26 15:01:13 2010
@@ -163,6 +163,7 @@ public final class SchemaSymbols {
     public static final String ATTVAL_POUNDALL               = "#all";
     public static final String ATTVAL_FALSE_0                = "0";
     public static final String ATTVAL_TRUE_1                 = "1";
+    public static final String ATTVAL_ANYATOMICTYPE          = 
"anyAtomicType";    
     public static final String ATTVAL_ANYSIMPLETYPE          = "anySimpleType";
     public static final String ATTVAL_ANYTYPE                = "anyType";
     public static final String ATTVAL_ANYURI                 = "anyURI";

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java?rev=938077&r1=938076&r2=938077&view=diff
==============================================================================
--- 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
 (original)
+++ 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDComplexTypeTraverser.java
 Mon Apr 26 15:01:13 2010
@@ -718,6 +718,13 @@ class  XSDComplexTypeTraverser extends X
                 baseValidator = dv;
                 simpleContent = DOMUtil.getNextSiblingElement(simpleContent);
             }
+            // anySimpleType or anyAtomicType are not allowed as base type
+            else if (baseValidator == SchemaGrammar.fAnySimpleType || 
baseValidator == SchemaGrammar.fAnyAtomicType) {
+                fAttrChecker.returnAttrArray(simpleContentAttrValues, 
schemaDoc);
+                fAttrChecker.returnAttrArray(derivationTypeAttrValues, 
schemaDoc);
+                throw new ComplexTypeRecoverableError("cos-st-restricts.1.1",
+                        new Object[]{baseValidator.getName(), 
genAnonTypeName(simpleContentElement)}, simpleContentElement);
+            } 
             
             // this only happens when restricting a mixed/emptiable CT
             // but there is no <simpleType>, which is required

Modified: 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDSimpleTypeTraverser.java
URL: 
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDSimpleTypeTraverser.java?rev=938077&r1=938076&r2=938077&view=diff
==============================================================================
--- 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDSimpleTypeTraverser.java
 (original)
+++ 
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDSimpleTypeTraverser.java
 Mon Apr 26 15:01:13 2010
@@ -491,7 +491,8 @@ class XSDSimpleTypeTraverser extends XSD
         }
 
         // if it's a complex type, or if its restriction of anySimpleType
-        if (baseType == SchemaGrammar.fAnySimpleType &&
+        // or anyAtomicType (XML Schema 1.1)
+        if ((baseType == SchemaGrammar.fAnySimpleType || baseType == 
SchemaGrammar.fAnyAtomicType) &&
             baseRefContext == XSConstants.DERIVATION_RESTRICTION) {
             // if the base type is anySimpleType and the current type is
             // a S4S built-in type, return null. (not an error).



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to