You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by kn...@apache.org on 2008/09/15 18:00:38 UTC

svn commit: r695518 [1/2] - in /xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces: impl/msg/ impl/xs/ impl/xs/traversers/ xs/

Author: knoaman
Date: Mon Sep 15 09:00:36 2008
New Revision: 695518

URL: http://svn.apache.org/viewvc?rev=695518&view=rev
Log:
Add traversal support for XML Schema 1.1 open content

Added:
    xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSOpenContentDecl.java   (with props)
    xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSOpenContent.java   (with props)
Modified:
    xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties
    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/XSComplexTypeDecl.java
    xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.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/XSDHandler.java
    xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDocumentInfo.java
    xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSComplexTypeDefinition.java
    xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSConstants.java

Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties?rev=695518&r1=695517&r2=695518&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/msg/XMLSchemaMessages.properties Mon Sep 15 09:00:36 2008
@@ -115,6 +115,7 @@
         src-ct.2.2 = src-ct.2.2: Complex Type Definition Representation Error for type ''{0}''.  When a complexType with simpleContent restricts a complexType with mixed content and emptiable particle, then there must be a <simpleType> among the children of <restriction>.
         src-ct.4 = src-ct.4: Complex Type Definition Representation Error for type ''{0}''. The intersection of wildcards is not expressible.
         src-ct.5 = src-ct.5: Complex Type Definition Representation Error for type ''{0}''. The union of wildcards is not expressible.
+        src-ct.6 = src-ct.5: Complex Type Definition Representation Error for type ''{0}''. If <openContent> is present and the actual value of its mode [attribute] is not 'none', then there must be an <any> among the [children] of <openContent>.
         src-element.1 = src-element.1: The properties ''default'' and ''fixed'' cannot both be present in element declaration ''{0}''. Use only one of them.
         src-element.2.1 = src-element.2.1: : One of 'ref' or 'name' must be present in a local element declaration.
         src-element.2.2 = src-element.2.2: Since ''{0}'' contains the ''ref'' attribute, its content must match (annotation?). However, ''{1}'' was found.
@@ -168,6 +169,9 @@
         cos-ct-extends.1.1 = cos-ct-extends.1.1: Type ''{0}'' was derived by extension from type ''{1}''.  However, the ''final'' attribute of ''{1}'' forbids derivation by extension.
         cos-ct-extends.1.4.3.2.2.1.a = cos-ct-extends.1.4.3.2.2.1.a: The content type of a derived type and that of its base must both be mixed or both be element-only. Type ''{0}'' is element only, but its base type is not.
         cos-ct-extends.1.4.3.2.2.1.b = cos-ct-extends.1.4.3.2.2.1.b: The content type of a derived type and that of its base must both be mixed or both be element-only. Type ''{0}'' is mixed, but its base type is not.
+        cos-ct-extends.1.4.3.2.2.3 = cos-ct-extends.1.4.3.2.2.3: The open content of the base type is not absent and the content type of the derived type must have a ''suffix'' or ''interleave'' mode. Type ''{0}'' has an open content with a ''none'' mode.
+        cos-ct-extends.1.4.3.2.2.3.3 = cos-ct-extends.1.4.3.2.2.3.3: The open content of a derived type and that of its base must both have a ''suffix'' mode. Type ''{0}'' has an open content with a ''suffix'' mode, but its base type is not.
+        cos-ct-extends.1.4.3.2.2.3.4 = cos-ct-extends.1.4.3.2.2.3.4: The namespace constraint of the wildcard on the open content of the base type must be a subset of the namespace constraint of the wildcard on the open content of the derived type. This is not the case for type ''{0}''. 
         cos-element-consistent = cos-element-consistent: Error for type ''{0}''. Multiple elements with name ''{1}'', with different types, appear in the model group.
         cos-list-of-atomic = cos-list-of-atomic: In the definition of list type ''{0}'', type ''{1}'' is an invalid list element type because it is not atomic (''{1}'' is either a list type, or a union type which contains a list).
         cos-nonambig = cos-nonambig: {0} and {1} (or elements from their substitution group) violate \"Unique Particle Attribution\". During validation against this schema, ambiguity would be created for those two particles.

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=695518&r1=695517&r2=695518&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 Sep 15 09:00:36 2008
@@ -434,19 +434,19 @@
             // fill complex types
             annotationType.setValues("#AnonType_" + SchemaSymbols.ELT_ANNOTATION, fTargetNamespace, SchemaGrammar.fAnyType,
                     XSConstants.DERIVATION_RESTRICTION, XSConstants.DERIVATION_NONE, (short) (XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION),
-                    XSComplexTypeDecl.CONTENTTYPE_ELEMENT, false, annotationAttrs, null, annotationParticle, new XSObjectListImpl(null, 0));
+                    XSComplexTypeDecl.CONTENTTYPE_ELEMENT, false, annotationAttrs, null, annotationParticle, new XSObjectListImpl(null, 0), null);
             annotationType.setName("#AnonType_" + SchemaSymbols.ELT_ANNOTATION);
             annotationType.setIsAnonymous();
             
             documentationType.setValues("#AnonType_" + SchemaSymbols.ELT_DOCUMENTATION, fTargetNamespace, SchemaGrammar.fAnyType,
                     XSConstants.DERIVATION_RESTRICTION, XSConstants.DERIVATION_NONE, (short) (XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION),
-                    XSComplexTypeDecl.CONTENTTYPE_MIXED, false, documentationAttrs, null, anyWCSequenceParticle, new XSObjectListImpl(null, 0));
+                    XSComplexTypeDecl.CONTENTTYPE_MIXED, false, documentationAttrs, null, anyWCSequenceParticle, new XSObjectListImpl(null, 0), null);
             documentationType.setName("#AnonType_" + SchemaSymbols.ELT_DOCUMENTATION);
             documentationType.setIsAnonymous();
             
             appinfoType.setValues("#AnonType_" + SchemaSymbols.ELT_APPINFO, fTargetNamespace, SchemaGrammar.fAnyType,
                     XSConstants.DERIVATION_RESTRICTION, XSConstants.DERIVATION_NONE, (short) (XSConstants.DERIVATION_EXTENSION | XSConstants.DERIVATION_RESTRICTION),
-                    XSComplexTypeDecl.CONTENTTYPE_MIXED, false, appinfoAttrs, null, anyWCSequenceParticle, new XSObjectListImpl(null, 0));
+                    XSComplexTypeDecl.CONTENTTYPE_MIXED, false, appinfoAttrs, null, anyWCSequenceParticle, new XSObjectListImpl(null, 0), null);
             appinfoType.setName("#AnonType_" + SchemaSymbols.ELT_APPINFO);
             appinfoType.setIsAnonymous();
             

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=695518&r1=695517&r2=695518&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 Sep 15 09:00:36 2008
@@ -49,166 +49,173 @@
     public static final String URI_SCHEMAVERSION = "http://www.w3.org/2007/XMLSchema-versioning".intern();
 
     // all possible schema element names
-    public static final String ELT_ALL                  = "all".intern();
-    public static final String ELT_ASSERT               = "assert".intern();
-    public static final String ELT_ALTERNATIVE          = "alternative".intern();
-    public static final String ELT_ANNOTATION           = "annotation".intern();
-    public static final String ELT_ANY                  = "any".intern();
-    public static final String ELT_ANYATTRIBUTE         = "anyAttribute".intern();
-    public static final String ELT_APPINFO              = "appinfo".intern();
-    public static final String ELT_ATTRIBUTE            = "attribute".intern();
-    public static final String ELT_ATTRIBUTEGROUP       = "attributeGroup".intern();
-    public static final String ELT_CHOICE               = "choice".intern();
-    public static final String ELT_COMPLEXCONTENT       = "complexContent".intern();
-    public static final String ELT_COMPLEXTYPE          = "complexType".intern();
-    public static final String ELT_DOCUMENTATION        = "documentation".intern();
-    public static final String ELT_ELEMENT              = "element".intern();
-    public static final String ELT_ENUMERATION          = "enumeration".intern();
-    public static final String ELT_EXTENSION            = "extension".intern();
-    public static final String ELT_FIELD                = "field".intern();
-    public static final String ELT_FRACTIONDIGITS       = "fractionDigits".intern();
-    public static final String ELT_GROUP                = "group".intern();
-    public static final String ELT_IMPORT               = "import".intern();
-    public static final String ELT_INCLUDE              = "include".intern();
-    public static final String ELT_KEY                  = "key".intern();
-    public static final String ELT_KEYREF               = "keyref".intern();
-    public static final String ELT_LENGTH               = "length".intern();
-    public static final String ELT_LIST                 = "list".intern();
-    public static final String ELT_MAXEXCLUSIVE         = "maxExclusive".intern();
-    public static final String ELT_MAXINCLUSIVE         = "maxInclusive".intern();
-    public static final String ELT_MAXLENGTH            = "maxLength".intern();
-    public static final String ELT_MINEXCLUSIVE         = "minExclusive".intern();
-    public static final String ELT_MININCLUSIVE         = "minInclusive".intern();
-    public static final String ELT_MINLENGTH            = "minLength".intern();
-    public static final String ELT_NOTATION             = "notation".intern();
-    public static final String ELT_PATTERN              = "pattern".intern();
-    public static final String ELT_REDEFINE             = "redefine".intern();
-    public static final String ELT_RESTRICTION          = "restriction".intern();
-    public static final String ELT_SCHEMA               = "schema".intern();
-    public static final String ELT_SELECTOR             = "selector".intern();
-    public static final String ELT_SEQUENCE             = "sequence".intern();
-    public static final String ELT_SIMPLECONTENT        = "simpleContent".intern();
-    public static final String ELT_SIMPLETYPE           = "simpleType".intern();
-    public static final String ELT_TOTALDIGITS          = "totalDigits".intern();
-    public static final String ELT_UNION                = "union".intern();
-    public static final String ELT_UNIQUE               = "unique".intern();
-    public static final String ELT_WHITESPACE           = "whiteSpace".intern();
-
+    public static final String ELT_ALL                   = "all".intern();
+    public static final String ELT_ASSERT                = "assert".intern();
+    public static final String ELT_ALTERNATIVE           = "alternative".intern();
+    public static final String ELT_ANNOTATION            = "annotation".intern();
+    public static final String ELT_ANY                   = "any".intern();
+    public static final String ELT_ANYATTRIBUTE          = "anyAttribute".intern();
+    public static final String ELT_APPINFO               = "appinfo".intern();
+    public static final String ELT_ATTRIBUTE             = "attribute".intern();
+    public static final String ELT_ATTRIBUTEGROUP        = "attributeGroup".intern();
+    public static final String ELT_CHOICE                = "choice".intern();
+    public static final String ELT_COMPLEXCONTENT        = "complexContent".intern();
+    public static final String ELT_COMPLEXTYPE           = "complexType".intern();
+    public static final String ELT_DEFAULTOPENCONTENT    = "defaultOpenContent".intern();
+    public static final String ELT_DOCUMENTATION         = "documentation".intern();
+    public static final String ELT_ELEMENT               = "element".intern();
+    public static final String ELT_ENUMERATION           = "enumeration".intern();
+    public static final String ELT_EXTENSION             = "extension".intern();
+    public static final String ELT_FIELD                 = "field".intern();
+    public static final String ELT_FRACTIONDIGITS        = "fractionDigits".intern();
+    public static final String ELT_GROUP                 = "group".intern();
+    public static final String ELT_IMPORT                = "import".intern();
+    public static final String ELT_INCLUDE               = "include".intern();
+    public static final String ELT_KEY                   = "key".intern();
+    public static final String ELT_KEYREF                = "keyref".intern();
+    public static final String ELT_LENGTH                = "length".intern();
+    public static final String ELT_LIST                  = "list".intern();
+    public static final String ELT_MAXEXCLUSIVE          = "maxExclusive".intern();
+    public static final String ELT_MAXINCLUSIVE          = "maxInclusive".intern();
+    public static final String ELT_MAXLENGTH             = "maxLength".intern();
+    public static final String ELT_MINEXCLUSIVE          = "minExclusive".intern();
+    public static final String ELT_MININCLUSIVE          = "minInclusive".intern();
+    public static final String ELT_MINLENGTH             = "minLength".intern();
+    public static final String ELT_NOTATION              = "notation".intern();
+    public static final String ELT_OPENCONTENT           = "openContent".intern();
+    public static final String ELT_PATTERN               = "pattern".intern();
+    public static final String ELT_REDEFINE              = "redefine".intern();
+    public static final String ELT_RESTRICTION           = "restriction".intern();
+    public static final String ELT_SCHEMA                = "schema".intern();
+    public static final String ELT_SELECTOR              = "selector".intern();
+    public static final String ELT_SEQUENCE              = "sequence".intern();
+    public static final String ELT_SIMPLECONTENT         = "simpleContent".intern();
+    public static final String ELT_SIMPLETYPE            = "simpleType".intern();
+    public static final String ELT_TOTALDIGITS           = "totalDigits".intern();
+    public static final String ELT_UNION                 = "union".intern();
+    public static final String ELT_UNIQUE                = "unique".intern();
+    public static final String ELT_WHITESPACE            = "whiteSpace".intern();
+ 
     // all possible schema attribute names (and xml:lang defined on <schema> and <documentation>)
-    public static final String ATT_ABSTRACT             = "abstract".intern();
-    public static final String ATT_ATTRIBUTEFORMDEFAULT = "attributeFormDefault".intern();
-    public static final String ATT_BASE                 = "base".intern();
-    public static final String ATT_BLOCK                = "block".intern();
-    public static final String ATT_BLOCKDEFAULT         = "blockDefault".intern();
-    public static final String ATT_DEFAULT              = "default".intern();
-    public static final String ATT_ELEMENTFORMDEFAULT   = "elementFormDefault".intern();
-    public static final String ATT_FINAL                = "final".intern();
-    public static final String ATT_FINALDEFAULT         = "finalDefault".intern();
-    public static final String ATT_FIXED                = "fixed".intern();
-    public static final String ATT_FORM                 = "form".intern();
-    public static final String ATT_ID                   = "id".intern();
-    public static final String ATT_ITEMTYPE             = "itemType".intern();
-    public static final String ATT_MAXOCCURS            = "maxOccurs".intern();
-    public static final String ATT_MEMBERTYPES          = "memberTypes".intern();
-    public static final String ATT_MINOCCURS            = "minOccurs".intern();
-    public static final String ATT_MIXED                = "mixed".intern();
-    public static final String ATT_NAME                 = "name".intern();
-    public static final String ATT_NAMESPACE            = "namespace".intern();
-    public static final String ATT_NILLABLE             = "nillable".intern();
-    public static final String ATT_PROCESSCONTENTS      = "processContents".intern();
-    public static final String ATT_REF                  = "ref".intern();
-    public static final String ATT_REFER                = "refer".intern();
-    public static final String ATT_SCHEMALOCATION       = "schemaLocation".intern();
-    public static final String ATT_SOURCE               = "source".intern();
-    public static final String ATT_SUBSTITUTIONGROUP    = "substitutionGroup".intern();
-    public static final String ATT_SYSTEM               = "system".intern();
-    public static final String ATT_PUBLIC               = "public".intern();
-    public static final String ATT_TARGETNAMESPACE      = "targetNamespace".intern();
-    public static final String ATT_TEST                 = "test".intern();
-    public static final String ATT_TYPE                 = "type".intern();
-    public static final String ATT_USE                  = "use".intern();
-    public static final String ATT_VALUE                = "value".intern();
-    public static final String ATT_VERSION              = "version".intern();
-    public static final String ATT_XML_LANG             = "xml:lang".intern();
-    public static final String ATT_XPATH                = "xpath".intern();
-    public static final String ATT_XPATH_DEFAULT_NS     = "xpathDefaultNamespace".intern();    
-    public static final String ATT_MINVERSION           = "minVersion".intern();
-    public static final String ATT_MAXVERSION           = "maxVersion".intern();
+    public static final String ATT_ABSTRACT              = "abstract".intern();
+    public static final String ATT_APPLIESTOEMPTY        = "appliesToEmpty".intern();
+    public static final String ATT_ATTRIBUTEFORMDEFAULT  = "attributeFormDefault".intern();
+    public static final String ATT_BASE                  = "base".intern();
+    public static final String ATT_BLOCK                 = "block".intern();
+    public static final String ATT_BLOCKDEFAULT          = "blockDefault".intern();
+    public static final String ATT_DEFAULT               = "default".intern();
+    public static final String ATT_ELEMENTFORMDEFAULT    = "elementFormDefault".intern();
+    public static final String ATT_FINAL                 = "final".intern();
+    public static final String ATT_FINALDEFAULT          = "finalDefault".intern();
+    public static final String ATT_FIXED                 = "fixed".intern();
+    public static final String ATT_FORM                  = "form".intern();
+    public static final String ATT_ID                    = "id".intern();
+    public static final String ATT_ITEMTYPE              = "itemType".intern();
+    public static final String ATT_MAXOCCURS             = "maxOccurs".intern();
+    public static final String ATT_MEMBERTYPES           = "memberTypes".intern();
+    public static final String ATT_MINOCCURS             = "minOccurs".intern();
+    public static final String ATT_MIXED                 = "mixed".intern();
+    public static final String ATT_MODE                  = "mode".intern();    
+    public static final String ATT_NAME                  = "name".intern();
+    public static final String ATT_NAMESPACE             = "namespace".intern();
+    public static final String ATT_NILLABLE              = "nillable".intern();
+    public static final String ATT_PROCESSCONTENTS       = "processContents".intern();
+    public static final String ATT_REF                   = "ref".intern();
+    public static final String ATT_REFER                 = "refer".intern();
+    public static final String ATT_SCHEMALOCATION        = "schemaLocation".intern();
+    public static final String ATT_SOURCE                = "source".intern();
+    public static final String ATT_SUBSTITUTIONGROUP     = "substitutionGroup".intern();
+    public static final String ATT_SYSTEM                = "system".intern();
+    public static final String ATT_PUBLIC                = "public".intern();
+    public static final String ATT_TARGETNAMESPACE       = "targetNamespace".intern();
+    public static final String ATT_TEST                  = "test".intern();
+    public static final String ATT_TYPE                  = "type".intern();
+    public static final String ATT_USE                   = "use".intern();
+    public static final String ATT_VALUE                 = "value".intern();
+    public static final String ATT_VERSION               = "version".intern();
+    public static final String ATT_XML_LANG              = "xml:lang".intern();
+    public static final String ATT_XPATH                 = "xpath".intern();
+    public static final String ATT_XPATH_DEFAULT_NS      = "xpathDefaultNamespace".intern();    
+    public static final String ATT_MINVERSION            = "minVersion".intern();
+    public static final String ATT_MAXVERSION            = "maxVersion".intern();
 
     // all possible schema attribute values
-    public static final String ATTVAL_TWOPOUNDANY       = "##any";
-    public static final String ATTVAL_TWOPOUNDDDEFAULTNS= "##defaultNamespace";    
-    public static final String ATTVAL_TWOPOUNDLOCAL     = "##local";
-    public static final String ATTVAL_TWOPOUNDOTHER     = "##other";
-    public static final String ATTVAL_TWOPOUNDTARGETNS  = "##targetNamespace";
-    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_ANYSIMPLETYPE     = "anySimpleType";
-    public static final String ATTVAL_ANYTYPE           = "anyType";
-    public static final String ATTVAL_ANYURI            = "anyURI";
-    public static final String ATTVAL_BASE64BINARY      = "base64Binary";
-    public static final String ATTVAL_BOOLEAN           = "boolean";
-    public static final String ATTVAL_BYTE              = "byte";
-    public static final String ATTVAL_COLLAPSE          = "collapse";
-    public static final String ATTVAL_DATE              = "date";
-    public static final String ATTVAL_DATETIME          = "dateTime";
-    public static final String ATTVAL_DAY               = "gDay";
-    public static final String ATTVAL_DECIMAL           = "decimal";
-    public static final String ATTVAL_DOUBLE            = "double";
-    public static final String ATTVAL_DURATION          = "duration";
-    public static final String ATTVAL_ENTITY            = "ENTITY";
-    public static final String ATTVAL_ENTITIES          = "ENTITIES";
-    public static final String ATTVAL_EXTENSION         = "extension";
-    public static final String ATTVAL_FALSE             = "false";
-    public static final String ATTVAL_FLOAT             = "float";
-    public static final String ATTVAL_HEXBINARY         = "hexBinary";
-    public static final String ATTVAL_ID                = "ID";
-    public static final String ATTVAL_IDREF             = "IDREF";
-    public static final String ATTVAL_IDREFS            = "IDREFS";
-    public static final String ATTVAL_INT               = "int";
-    public static final String ATTVAL_INTEGER           = "integer";
-    public static final String ATTVAL_LANGUAGE          = "language";
-    public static final String ATTVAL_LAX               = "lax";
-    public static final String ATTVAL_LIST              = "list";
-    public static final String ATTVAL_LONG              = "long";
-    public static final String ATTVAL_NAME              = "Name";
-    public static final String ATTVAL_NEGATIVEINTEGER   = "negativeInteger";
-    public static final String ATTVAL_MONTH             = "gMonth";
-    public static final String ATTVAL_MONTHDAY          = "gMonthDay";
-    public static final String ATTVAL_NCNAME            = "NCName";
-    public static final String ATTVAL_NMTOKEN           = "NMTOKEN";
-    public static final String ATTVAL_NMTOKENS          = "NMTOKENS";
-    public static final String ATTVAL_NONNEGATIVEINTEGER= "nonNegativeInteger";
-    public static final String ATTVAL_NONPOSITIVEINTEGER= "nonPositiveInteger";
-    public static final String ATTVAL_NORMALIZEDSTRING  = "normalizedString";
-    public static final String ATTVAL_NOTATION          = "NOTATION";
-    public static final String ATTVAL_OPTIONAL          = "optional";
-    public static final String ATTVAL_POSITIVEINTEGER   = "positiveInteger";
-    public static final String ATTVAL_PRESERVE          = "preserve";
-    public static final String ATTVAL_PROHIBITED        = "prohibited";
-    public static final String ATTVAL_QNAME             = "QName";
-    public static final String ATTVAL_QUALIFIED         = "qualified";
-    public static final String ATTVAL_REPLACE           = "replace";
-    public static final String ATTVAL_REQUIRED          = "required";
-    public static final String ATTVAL_RESTRICTION       = "restriction";
-    public static final String ATTVAL_SHORT             = "short";
-    public static final String ATTVAL_SKIP              = "skip";
-    public static final String ATTVAL_STRICT            = "strict";
-    public static final String ATTVAL_STRING            = "string";
-    public static final String ATTVAL_SUBSTITUTION      = "substitution";
-    public static final String ATTVAL_TIME              = "time";
-    public static final String ATTVAL_TOKEN             = "token";
-    public static final String ATTVAL_TRUE              = "true";
-    public static final String ATTVAL_UNBOUNDED         = "unbounded";
-    public static final String ATTVAL_UNION             = "union";
-    public static final String ATTVAL_UNQUALIFIED       = "unqualified";
-    public static final String ATTVAL_UNSIGNEDBYTE      = "unsignedByte";
-    public static final String ATTVAL_UNSIGNEDINT       = "unsignedInt";
-    public static final String ATTVAL_UNSIGNEDLONG      = "unsignedLong";
-    public static final String ATTVAL_UNSIGNEDSHORT     = "unsignedShort";
-    public static final String ATTVAL_YEAR              = "gYear";
-    public static final String ATTVAL_YEARMONTH         = "gYearMonth";
+    public static final String ATTVAL_TWOPOUNDANY        = "##any";
+    public static final String ATTVAL_TWOPOUNDDDEFAULTNS = "##defaultNamespace";    
+    public static final String ATTVAL_TWOPOUNDLOCAL      = "##local";
+    public static final String ATTVAL_TWOPOUNDOTHER      = "##other";
+    public static final String ATTVAL_TWOPOUNDTARGETNS   = "##targetNamespace";
+    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_ANYSIMPLETYPE      = "anySimpleType";
+    public static final String ATTVAL_ANYTYPE            = "anyType";
+    public static final String ATTVAL_ANYURI             = "anyURI";
+    public static final String ATTVAL_BASE64BINARY       = "base64Binary";
+    public static final String ATTVAL_BOOLEAN            = "boolean";
+    public static final String ATTVAL_BYTE               = "byte";
+    public static final String ATTVAL_COLLAPSE           = "collapse";
+    public static final String ATTVAL_DATE               = "date";
+    public static final String ATTVAL_DATETIME           = "dateTime";
+    public static final String ATTVAL_DAY                = "gDay";
+    public static final String ATTVAL_DECIMAL            = "decimal";
+    public static final String ATTVAL_DOUBLE             = "double";
+    public static final String ATTVAL_DURATION           = "duration";
+    public static final String ATTVAL_ENTITY             = "ENTITY";
+    public static final String ATTVAL_ENTITIES           = "ENTITIES";
+    public static final String ATTVAL_EXTENSION          = "extension";
+    public static final String ATTVAL_FALSE              = "false";
+    public static final String ATTVAL_FLOAT              = "float";
+    public static final String ATTVAL_HEXBINARY          = "hexBinary";
+    public static final String ATTVAL_ID                 = "ID";
+    public static final String ATTVAL_IDREF              = "IDREF";
+    public static final String ATTVAL_IDREFS             = "IDREFS";
+    public static final String ATTVAL_INT                = "int";
+    public static final String ATTVAL_INTEGER            = "integer";
+    public static final String ATTVAL_INTERLEAVE         = "interleave";    
+    public static final String ATTVAL_LANGUAGE           = "language";
+    public static final String ATTVAL_LAX                = "lax";
+    public static final String ATTVAL_LIST               = "list";
+    public static final String ATTVAL_LONG               = "long";
+    public static final String ATTVAL_NAME               = "Name";
+    public static final String ATTVAL_NEGATIVEINTEGER    = "negativeInteger";
+    public static final String ATTVAL_MONTH              = "gMonth";
+    public static final String ATTVAL_MONTHDAY           = "gMonthDay";
+    public static final String ATTVAL_NCNAME             = "NCName";
+    public static final String ATTVAL_NMTOKEN            = "NMTOKEN";
+    public static final String ATTVAL_NMTOKENS           = "NMTOKENS";
+    public static final String ATTVAL_NONE               = "none";    
+    public static final String ATTVAL_NONNEGATIVEINTEGER = "nonNegativeInteger";
+    public static final String ATTVAL_NONPOSITIVEINTEGER = "nonPositiveInteger";
+    public static final String ATTVAL_NORMALIZEDSTRING   = "normalizedString";
+    public static final String ATTVAL_NOTATION           = "NOTATION";
+    public static final String ATTVAL_OPTIONAL           = "optional";
+    public static final String ATTVAL_POSITIVEINTEGER    = "positiveInteger";
+    public static final String ATTVAL_PRESERVE           = "preserve";
+    public static final String ATTVAL_PROHIBITED         = "prohibited";
+    public static final String ATTVAL_QNAME              = "QName";
+    public static final String ATTVAL_QUALIFIED          = "qualified";
+    public static final String ATTVAL_REPLACE            = "replace";
+    public static final String ATTVAL_REQUIRED           = "required";
+    public static final String ATTVAL_RESTRICTION        = "restriction";
+    public static final String ATTVAL_SHORT              = "short";
+    public static final String ATTVAL_SKIP               = "skip";
+    public static final String ATTVAL_STRICT             = "strict";
+    public static final String ATTVAL_STRING             = "string";    
+    public static final String ATTVAL_SUBSTITUTION       = "substitution";
+    public static final String ATTVAL_SUFFIX             = "suffix";
+    public static final String ATTVAL_TIME               = "time";
+    public static final String ATTVAL_TOKEN              = "token";
+    public static final String ATTVAL_TRUE               = "true";
+    public static final String ATTVAL_UNBOUNDED          = "unbounded";
+    public static final String ATTVAL_UNION              = "union";
+    public static final String ATTVAL_UNQUALIFIED        = "unqualified";
+    public static final String ATTVAL_UNSIGNEDBYTE       = "unsignedByte";
+    public static final String ATTVAL_UNSIGNEDINT        = "unsignedInt";
+    public static final String ATTVAL_UNSIGNEDLONG       = "unsignedLong";
+    public static final String ATTVAL_UNSIGNEDSHORT      = "unsignedShort";
+    public static final String ATTVAL_YEAR               = "gYear";
+    public static final String ATTVAL_YEARMONTH          = "gYearMonth";
 
     // form qualified/unqualified
     public static final short FORM_UNQUALIFIED = 0;

Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSComplexTypeDecl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSComplexTypeDecl.java?rev=695518&r1=695517&r2=695518&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSComplexTypeDecl.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSComplexTypeDecl.java Mon Sep 15 09:00:36 2008
@@ -84,6 +84,9 @@
     // of the complex type definition, if it is globally declared; or null otherwise.
     private XSNamespaceItem fNamespaceItem = null;
 
+    // the open content
+    XSOpenContentDecl fOpenContent = null;
+
     // DOM Level 3 TypeInfo Derivation Method constants
     static final int DERIVATION_ANY = 0;
     static final int DERIVATION_RESTRICTION = 1;
@@ -100,7 +103,7 @@
             short block, short contentType,
             boolean isAbstract, XSAttributeGroupDecl attrGrp, 
             XSSimpleType simpleType, XSParticleDecl particle,
-            XSObjectListImpl annotations) {
+            XSObjectListImpl annotations, XSOpenContentDecl openContent) {
         fTargetNamespace = targetNamespace;
         fBaseType = baseType;
         fDerivedBy = derivedBy;
@@ -113,6 +116,7 @@
         fXSSimpleType = simpleType;
         fParticle = particle;
         fAnnotations = annotations;
+        fOpenContent = openContent;
    }
 
    public void setName(String name) {
@@ -721,4 +725,8 @@
         return isDOMDerivedFrom(typeNamespaceArg, typeNameArg, derivationMethod);
     }
 
+    public XSOpenContent getOpenContent() {
+        return fOpenContent;
+    }
+
 } // class XSComplexTypeDecl

Added: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSOpenContentDecl.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSOpenContentDecl.java?rev=695518&view=auto
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSOpenContentDecl.java (added)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSOpenContentDecl.java Mon Sep 15 09:00:36 2008
@@ -0,0 +1,123 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.xerces.impl.xs;
+
+import org.apache.xerces.xs.XSConstants;
+import org.apache.xerces.xs.XSNamespaceItem;
+import org.apache.xerces.xs.XSOpenContent;
+import org.apache.xerces.xs.XSWildcard;
+
+/**
+ * The XML representation for an openContent declaration either
+ * an &lt;openContent&gt; or a &lt;defaultOpenContent&gt;
+ *
+ * @xerces.internal 
+ *
+ * @author Khaled Noaman, IBM
+ * @version $Id$
+ */
+public class XSOpenContentDecl implements XSOpenContent {
+
+	 // the mode of the openContent
+    public short fMode = MODE_NONE;
+    // the appliesToEmpty flag
+    public boolean fAppliesToEmpty = false;
+    // the wildcard declaration
+    public XSWildcardDecl fWildcard = null;
+    
+    /**
+     * get the string description of this wildcard
+     */
+    private String fDescription = null;
+    public String toString() {
+        if (fDescription == null) {
+            StringBuffer buffer = new StringBuffer();
+            buffer.append("OC[mode=");
+            if (fMode == MODE_NONE) {
+            	buffer.append("none,");
+            }
+            else if (fMode == MODE_INTERLEAVE) {
+            	buffer.append("interleave,");
+            }
+            else {
+            	buffer.append("suffix,");
+            }
+            buffer.append(fWildcard.toString());
+            buffer.append("]");
+            fDescription = buffer.toString();
+        }
+
+        return fDescription;
+    }
+
+    /**
+     * Get the type of the object, i.e ELEMENT_DECLARATION.
+     */
+    public short getType() {
+        return XSConstants.OPEN_CONTENT;
+    }
+
+    /**
+     * The <code>name</code> of this <code>XSObject</code> depending on the
+     * <code>XSObject</code> type.
+     */
+    public String getName() {
+        return null;
+    }
+
+    /**
+     * The namespace URI of this node, or <code>null</code> if it is
+     * unspecified.  defines how a namespace URI is attached to schema
+     * components.
+     */
+    public String getNamespace() {
+        return null;
+    }
+
+	/**
+	 * @see org.apache.xerces.xs.XSObject#getNamespaceItem()
+	 */
+	public XSNamespaceItem getNamespaceItem() {
+        // REVISIT: implement
+		return null;
+	}
+
+    /**
+     * A mode type: none, interleave, suffix. 
+     */
+    public short getModeType() {
+    	return fMode;
+    }
+
+    /**
+     * A wildcard declaration
+     */
+    public XSWildcard getWildcard() {
+    	return fWildcard;
+    }
+    
+    /**
+     * A flag that indicates whether a default open content is applied
+     * when the content type of a complex type declaration is empty
+     */
+    // TODO: do we have two different implementations (i.e. XSOenContentDecl and XSDefaultOpenContentDecl)
+    //       and add that method only to XSDefaultOpenContentDecl
+    public boolean appliesToEmpty() {
+    	return fAppliesToEmpty;
+    }
+}

Propchange: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSOpenContentDecl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSOpenContentDecl.java
------------------------------------------------------------------------------
    svn:keywords = Author Date Id Revision

Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java?rev=695518&r1=695517&r2=695518&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSAttributeChecker.java Mon Sep 15 09:00:36 2008
@@ -29,6 +29,7 @@
 import org.apache.xerces.impl.xs.SchemaSymbols;
 import org.apache.xerces.impl.xs.XSAttributeDecl;
 import org.apache.xerces.impl.xs.XSGrammarBucket;
+import org.apache.xerces.impl.xs.XSOpenContentDecl;
 import org.apache.xerces.impl.xs.XSWildcardDecl;
 import org.apache.xerces.impl.xs.util.XInt;
 import org.apache.xerces.impl.xs.util.XIntPool;
@@ -122,25 +123,30 @@
     
     //  Schema 1.1
     public static final int ATTIDX_XPATHDEFAULTNS  = ATTIDX_COUNT++;
+    public static final int ATTIDX_APPLIESTOEMPTY  = ATTIDX_COUNT++;
+    public static final int ATTIDX_MODE            = ATTIDX_COUNT++;    
 
     private static final XIntPool fXIntPool = new XIntPool();
     // constants to return
-    private static final XInt INT_QUALIFIED      = fXIntPool.getXInt(SchemaSymbols.FORM_QUALIFIED);
-    private static final XInt INT_UNQUALIFIED    = fXIntPool.getXInt(SchemaSymbols.FORM_UNQUALIFIED);
-    private static final XInt INT_EMPTY_SET      = fXIntPool.getXInt(XSConstants.DERIVATION_NONE);
-    private static final XInt INT_ANY_STRICT     = fXIntPool.getXInt(XSWildcardDecl.PC_STRICT);
-    private static final XInt INT_ANY_LAX        = fXIntPool.getXInt(XSWildcardDecl.PC_LAX);
-    private static final XInt INT_ANY_SKIP       = fXIntPool.getXInt(XSWildcardDecl.PC_SKIP);
-    private static final XInt INT_ANY_ANY        = fXIntPool.getXInt(XSWildcardDecl.NSCONSTRAINT_ANY);
-    private static final XInt INT_ANY_LIST       = fXIntPool.getXInt(XSWildcardDecl.NSCONSTRAINT_LIST);
-    private static final XInt INT_ANY_NOT        = fXIntPool.getXInt(XSWildcardDecl.NSCONSTRAINT_NOT);
-    private static final XInt INT_USE_OPTIONAL   = fXIntPool.getXInt(SchemaSymbols.USE_OPTIONAL);
-    private static final XInt INT_USE_REQUIRED   = fXIntPool.getXInt(SchemaSymbols.USE_REQUIRED);
-    private static final XInt INT_USE_PROHIBITED = fXIntPool.getXInt(SchemaSymbols.USE_PROHIBITED);
-    private static final XInt INT_WS_PRESERVE    = fXIntPool.getXInt(XSSimpleType.WS_PRESERVE);
-    private static final XInt INT_WS_REPLACE     = fXIntPool.getXInt(XSSimpleType.WS_REPLACE);
-    private static final XInt INT_WS_COLLAPSE    = fXIntPool.getXInt(XSSimpleType.WS_COLLAPSE);
-    private static final XInt INT_UNBOUNDED      = fXIntPool.getXInt(SchemaSymbols.OCCURRENCE_UNBOUNDED);
+    private static final XInt INT_QUALIFIED       = fXIntPool.getXInt(SchemaSymbols.FORM_QUALIFIED);
+    private static final XInt INT_UNQUALIFIED     = fXIntPool.getXInt(SchemaSymbols.FORM_UNQUALIFIED);
+    private static final XInt INT_EMPTY_SET       = fXIntPool.getXInt(XSConstants.DERIVATION_NONE);
+    private static final XInt INT_ANY_STRICT      = fXIntPool.getXInt(XSWildcardDecl.PC_STRICT);
+    private static final XInt INT_ANY_LAX         = fXIntPool.getXInt(XSWildcardDecl.PC_LAX);
+    private static final XInt INT_ANY_SKIP        = fXIntPool.getXInt(XSWildcardDecl.PC_SKIP);
+    private static final XInt INT_ANY_ANY         = fXIntPool.getXInt(XSWildcardDecl.NSCONSTRAINT_ANY);
+    private static final XInt INT_ANY_LIST        = fXIntPool.getXInt(XSWildcardDecl.NSCONSTRAINT_LIST);
+    private static final XInt INT_ANY_NOT         = fXIntPool.getXInt(XSWildcardDecl.NSCONSTRAINT_NOT);
+    private static final XInt INT_USE_OPTIONAL    = fXIntPool.getXInt(SchemaSymbols.USE_OPTIONAL);
+    private static final XInt INT_USE_REQUIRED    = fXIntPool.getXInt(SchemaSymbols.USE_REQUIRED);
+    private static final XInt INT_USE_PROHIBITED  = fXIntPool.getXInt(SchemaSymbols.USE_PROHIBITED);
+    private static final XInt INT_WS_PRESERVE     = fXIntPool.getXInt(XSSimpleType.WS_PRESERVE);
+    private static final XInt INT_WS_REPLACE      = fXIntPool.getXInt(XSSimpleType.WS_REPLACE);
+    private static final XInt INT_WS_COLLAPSE     = fXIntPool.getXInt(XSSimpleType.WS_COLLAPSE);
+    private static final XInt INT_UNBOUNDED       = fXIntPool.getXInt(SchemaSymbols.OCCURRENCE_UNBOUNDED);
+    private static final XInt INT_MODE_NONE       = fXIntPool.getXInt(XSOpenContentDecl.MODE_NONE);
+    private static final XInt INT_MODE_INTERLEAVE = fXIntPool.getXInt(XSOpenContentDecl.MODE_INTERLEAVE);
+    private static final XInt INT_MODE_SUFFIX     = fXIntPool.getXInt(XSOpenContentDecl.MODE_SUFFIX);
 
     // used to store the map from element name to attribute list
     // for 14 global elements
@@ -207,6 +213,8 @@
     protected static final int DT_NONNEGINT        = -16;
     protected static final int DT_POSINT           = -17;
     protected static final int DT_XPATH_DEFAULT_NS = -18;
+    protected static final int DT_MODE             = -19;
+    protected static final int DT_MODE1            = -20;
 
     static {
         // step 2: all possible attributes for all elements
@@ -259,211 +267,228 @@
         int ATT_XML_LANG            = attCount++;
         int ATT_XPATH_R             = attCount++;
         int ATT_XPATH1_R            = attCount++;
+        // XML Schema 1.1 attributes
         int ATT_TEST_XPATH_R        = attCount++;
         int ATT_DEFAULT_XPATH_NS_N  = attCount++;
+        int ATT_APPLIESTO_EMPTY_D   = attCount++;
+        int ATT_MODE_D              = attCount++;
+        int ATT_MODE1_D             = attCount++;        
 
         // step 3: store all these attributes in an array
         OneAttr[] allAttrs = new OneAttr[attCount];
-        allAttrs[ATT_ABSTRACT_D]        =   new OneAttr(SchemaSymbols.ATT_ABSTRACT,
+        allAttrs[ATT_ABSTRACT_D]         =   new OneAttr(SchemaSymbols.ATT_ABSTRACT,
                                                         DT_BOOLEAN,
                                                         ATTIDX_ABSTRACT,
                                                         Boolean.FALSE);
-        allAttrs[ATT_ATTRIBUTE_FD_D]    =   new OneAttr(SchemaSymbols.ATT_ATTRIBUTEFORMDEFAULT,
+        allAttrs[ATT_APPLIESTO_EMPTY_D]  =   new OneAttr(SchemaSymbols.ATT_APPLIESTOEMPTY,
+                                                        DT_BOOLEAN,
+                                                        ATTIDX_APPLIESTOEMPTY,
+                                                        Boolean.FALSE);
+        allAttrs[ATT_ATTRIBUTE_FD_D]     =   new OneAttr(SchemaSymbols.ATT_ATTRIBUTEFORMDEFAULT,
                                                         DT_FORM,
                                                         ATTIDX_AFORMDEFAULT,
                                                         INT_UNQUALIFIED);
-        allAttrs[ATT_BASE_R]            =   new OneAttr(SchemaSymbols.ATT_BASE,
+        allAttrs[ATT_BASE_R]             =   new OneAttr(SchemaSymbols.ATT_BASE,
                                                         DT_QNAME,
                                                         ATTIDX_BASE,
                                                         null);
-        allAttrs[ATT_BASE_N]            =   new OneAttr(SchemaSymbols.ATT_BASE,
+        allAttrs[ATT_BASE_N]             =   new OneAttr(SchemaSymbols.ATT_BASE,
                                                         DT_QNAME,
                                                         ATTIDX_BASE,
                                                         null);
-        allAttrs[ATT_BLOCK_N]           =   new OneAttr(SchemaSymbols.ATT_BLOCK,
+        allAttrs[ATT_BLOCK_N]            =   new OneAttr(SchemaSymbols.ATT_BLOCK,
                                                         DT_BLOCK,
                                                         ATTIDX_BLOCK,
                                                         null);
-        allAttrs[ATT_BLOCK1_N]          =   new OneAttr(SchemaSymbols.ATT_BLOCK,
+        allAttrs[ATT_BLOCK1_N]           =   new OneAttr(SchemaSymbols.ATT_BLOCK,
                                                         DT_BLOCK1,
                                                         ATTIDX_BLOCK,
                                                         null);
-        allAttrs[ATT_BLOCK_D_D]         =   new OneAttr(SchemaSymbols.ATT_BLOCKDEFAULT,
+        allAttrs[ATT_BLOCK_D_D]          =   new OneAttr(SchemaSymbols.ATT_BLOCKDEFAULT,
                                                         DT_BLOCK,
                                                         ATTIDX_BLOCKDEFAULT,
                                                         INT_EMPTY_SET);
-        allAttrs[ATT_DEFAULT_N]         =   new OneAttr(SchemaSymbols.ATT_DEFAULT,
+        allAttrs[ATT_DEFAULT_N]          =   new OneAttr(SchemaSymbols.ATT_DEFAULT,
                                                         DT_STRING,
                                                         ATTIDX_DEFAULT,
                                                         null);
-        allAttrs[ATT_ELEMENT_FD_D]      =   new OneAttr(SchemaSymbols.ATT_ELEMENTFORMDEFAULT,
+        allAttrs[ATT_DEFAULT_XPATH_NS_N] =   new OneAttr(SchemaSymbols.ATT_XPATH_DEFAULT_NS,
+                                                        DT_XPATH_DEFAULT_NS,
+                                                        ATTIDX_XPATHDEFAULTNS,
+                                                        null);
+        allAttrs[ATT_ELEMENT_FD_D]       =   new OneAttr(SchemaSymbols.ATT_ELEMENTFORMDEFAULT,
                                                         DT_FORM,
                                                         ATTIDX_EFORMDEFAULT,
                                                         INT_UNQUALIFIED);
-        allAttrs[ATT_FINAL_N]           =   new OneAttr(SchemaSymbols.ATT_FINAL,
+        allAttrs[ATT_FINAL_N]            =   new OneAttr(SchemaSymbols.ATT_FINAL,
                                                         DT_FINAL,
                                                         ATTIDX_FINAL,
                                                         null);
-        allAttrs[ATT_FINAL1_N]          =   new OneAttr(SchemaSymbols.ATT_FINAL,
+        allAttrs[ATT_FINAL1_N]           =   new OneAttr(SchemaSymbols.ATT_FINAL,
                                                         DT_FINAL1,
                                                         ATTIDX_FINAL,
                                                         null);
-        allAttrs[ATT_FINAL_D_D]         =   new OneAttr(SchemaSymbols.ATT_FINALDEFAULT,
+        allAttrs[ATT_FINAL_D_D]          =   new OneAttr(SchemaSymbols.ATT_FINALDEFAULT,
                                                         DT_FINAL2,
                                                         ATTIDX_FINALDEFAULT,
                                                         INT_EMPTY_SET);
-        allAttrs[ATT_FIXED_N]           =   new OneAttr(SchemaSymbols.ATT_FIXED,
+        allAttrs[ATT_FIXED_N]            =   new OneAttr(SchemaSymbols.ATT_FIXED,
                                                         DT_STRING,
                                                         ATTIDX_FIXED,
                                                         null);
-        allAttrs[ATT_FIXED_D]           =   new OneAttr(SchemaSymbols.ATT_FIXED,
+        allAttrs[ATT_FIXED_D]            =   new OneAttr(SchemaSymbols.ATT_FIXED,
                                                         DT_BOOLEAN,
                                                         ATTIDX_FIXED,
                                                         Boolean.FALSE);
-        allAttrs[ATT_FORM_N]            =   new OneAttr(SchemaSymbols.ATT_FORM,
+        allAttrs[ATT_FORM_N]             =   new OneAttr(SchemaSymbols.ATT_FORM,
                                                         DT_FORM,
                                                         ATTIDX_FORM,
                                                         null);
-        allAttrs[ATT_ID_N]              =   new OneAttr(SchemaSymbols.ATT_ID,
+        allAttrs[ATT_ID_N]               =   new OneAttr(SchemaSymbols.ATT_ID,
                                                         DT_ID,
                                                         ATTIDX_ID,
                                                         null);
-        allAttrs[ATT_ITEMTYPE_N]        =   new OneAttr(SchemaSymbols.ATT_ITEMTYPE,
+        allAttrs[ATT_ITEMTYPE_N]         =   new OneAttr(SchemaSymbols.ATT_ITEMTYPE,
                                                         DT_QNAME,
                                                         ATTIDX_ITEMTYPE,
                                                         null);
-        allAttrs[ATT_MAXOCCURS_D]       =   new OneAttr(SchemaSymbols.ATT_MAXOCCURS,
+        allAttrs[ATT_MAXOCCURS_D]        =   new OneAttr(SchemaSymbols.ATT_MAXOCCURS,
                                                         DT_MAXOCCURS,
                                                         ATTIDX_MAXOCCURS,
                                                         fXIntPool.getXInt(1));
-        allAttrs[ATT_MAXOCCURS1_D]      =   new OneAttr(SchemaSymbols.ATT_MAXOCCURS,
+        allAttrs[ATT_MAXOCCURS1_D]       =   new OneAttr(SchemaSymbols.ATT_MAXOCCURS,
                                                         DT_MAXOCCURS1,
                                                         ATTIDX_MAXOCCURS,
                                                         fXIntPool.getXInt(1));
-        allAttrs[ATT_MEMBER_T_N]        =   new OneAttr(SchemaSymbols.ATT_MEMBERTYPES,
+        allAttrs[ATT_MEMBER_T_N]         =   new OneAttr(SchemaSymbols.ATT_MEMBERTYPES,
                                                         DT_MEMBERTYPES,
                                                         ATTIDX_MEMBERTYPES,
                                                         null);
-        allAttrs[ATT_MINOCCURS_D]       =   new OneAttr(SchemaSymbols.ATT_MINOCCURS,
+        allAttrs[ATT_MINOCCURS_D]        =   new OneAttr(SchemaSymbols.ATT_MINOCCURS,
                                                         DT_NONNEGINT,
                                                         ATTIDX_MINOCCURS,
                                                         fXIntPool.getXInt(1));
-        allAttrs[ATT_MINOCCURS1_D]      =   new OneAttr(SchemaSymbols.ATT_MINOCCURS,
+        allAttrs[ATT_MINOCCURS1_D]       =   new OneAttr(SchemaSymbols.ATT_MINOCCURS,
                                                         DT_MINOCCURS1,
                                                         ATTIDX_MINOCCURS,
                                                         fXIntPool.getXInt(1));
-        allAttrs[ATT_MIXED_D]           =   new OneAttr(SchemaSymbols.ATT_MIXED,
+        allAttrs[ATT_MIXED_D]            =   new OneAttr(SchemaSymbols.ATT_MIXED,
                                                         DT_BOOLEAN,
                                                         ATTIDX_MIXED,
                                                         Boolean.FALSE);
-        allAttrs[ATT_MIXED_N]           =   new OneAttr(SchemaSymbols.ATT_MIXED,
+        allAttrs[ATT_MIXED_N]            =   new OneAttr(SchemaSymbols.ATT_MIXED,
                                                         DT_BOOLEAN,
                                                         ATTIDX_MIXED,
                                                         null);
-        allAttrs[ATT_NAME_R]            =   new OneAttr(SchemaSymbols.ATT_NAME,
+        allAttrs[ATT_MODE_D]             =   new OneAttr(SchemaSymbols.ATT_MODE,
+                                                        DT_MODE,
+                                                        ATTIDX_MODE,
+                                                        INT_MODE_INTERLEAVE);
+        allAttrs[ATT_MODE1_D]            =   new OneAttr(SchemaSymbols.ATT_MODE,
+                                                        DT_MODE1,
+                                                        ATTIDX_MODE,
+                                                        INT_MODE_INTERLEAVE);
+        allAttrs[ATT_NAME_R]             =   new OneAttr(SchemaSymbols.ATT_NAME,
                                                         DT_NCNAME,
                                                         ATTIDX_NAME,
                                                         null);
-        allAttrs[ATT_NAMESPACE_D]       =   new OneAttr(SchemaSymbols.ATT_NAMESPACE,
+        allAttrs[ATT_NAMESPACE_D]        =   new OneAttr(SchemaSymbols.ATT_NAMESPACE,
                                                         DT_NAMESPACE,
                                                         ATTIDX_NAMESPACE,
                                                         INT_ANY_ANY);
-        allAttrs[ATT_NAMESPACE_N]       =   new OneAttr(SchemaSymbols.ATT_NAMESPACE,
+        allAttrs[ATT_NAMESPACE_N]        =   new OneAttr(SchemaSymbols.ATT_NAMESPACE,
                                                         DT_ANYURI,
                                                         ATTIDX_NAMESPACE,
                                                         null);
-        allAttrs[ATT_NILLABLE_D]        =   new OneAttr(SchemaSymbols.ATT_NILLABLE,
+        allAttrs[ATT_NILLABLE_D]         =   new OneAttr(SchemaSymbols.ATT_NILLABLE,
                                                         DT_BOOLEAN,
                                                         ATTIDX_NILLABLE,
                                                         Boolean.FALSE);
-        allAttrs[ATT_PROCESS_C_D]       =   new OneAttr(SchemaSymbols.ATT_PROCESSCONTENTS,
+        allAttrs[ATT_PROCESS_C_D]        =   new OneAttr(SchemaSymbols.ATT_PROCESSCONTENTS,
                                                         DT_PROCESSCONTENTS,
                                                         ATTIDX_PROCESSCONTENTS,
                                                         INT_ANY_STRICT);
-        allAttrs[ATT_PUBLIC_R]          =   new OneAttr(SchemaSymbols.ATT_PUBLIC,
+        allAttrs[ATT_PUBLIC_R]           =   new OneAttr(SchemaSymbols.ATT_PUBLIC,
                                                         DT_TOKEN,
                                                         ATTIDX_PUBLIC,
                                                         null);
-        allAttrs[ATT_REF_R]             =   new OneAttr(SchemaSymbols.ATT_REF,
+        allAttrs[ATT_REF_R]              =   new OneAttr(SchemaSymbols.ATT_REF,
                                                         DT_QNAME,
                                                         ATTIDX_REF,
                                                         null);
-        allAttrs[ATT_REFER_R]           =   new OneAttr(SchemaSymbols.ATT_REFER,
+        allAttrs[ATT_REFER_R]            =   new OneAttr(SchemaSymbols.ATT_REFER,
                                                         DT_QNAME,
                                                         ATTIDX_REFER,
                                                         null);
-        allAttrs[ATT_SCHEMA_L_R]        =   new OneAttr(SchemaSymbols.ATT_SCHEMALOCATION,
+        allAttrs[ATT_SCHEMA_L_R]         =   new OneAttr(SchemaSymbols.ATT_SCHEMALOCATION,
                                                         DT_ANYURI,
                                                         ATTIDX_SCHEMALOCATION,
                                                         null);
-        allAttrs[ATT_SCHEMA_L_N]        =   new OneAttr(SchemaSymbols.ATT_SCHEMALOCATION,
+        allAttrs[ATT_SCHEMA_L_N]         =   new OneAttr(SchemaSymbols.ATT_SCHEMALOCATION,
                                                         DT_ANYURI,
                                                         ATTIDX_SCHEMALOCATION,
                                                         null);
-        allAttrs[ATT_SOURCE_N]          =   new OneAttr(SchemaSymbols.ATT_SOURCE,
+        allAttrs[ATT_SOURCE_N]           =   new OneAttr(SchemaSymbols.ATT_SOURCE,
                                                         DT_ANYURI,
                                                         ATTIDX_SOURCE,
                                                         null);
-        allAttrs[ATT_SUBSTITUTION_G_N]  =   new OneAttr(SchemaSymbols.ATT_SUBSTITUTIONGROUP,
+        allAttrs[ATT_SUBSTITUTION_G_N]   =   new OneAttr(SchemaSymbols.ATT_SUBSTITUTIONGROUP,
                                                         DT_QNAME,
                                                         ATTIDX_SUBSGROUP,
                                                         null);
-        allAttrs[ATT_SYSTEM_N]          =   new OneAttr(SchemaSymbols.ATT_SYSTEM,
+        allAttrs[ATT_SYSTEM_N]           =   new OneAttr(SchemaSymbols.ATT_SYSTEM,
                                                         DT_ANYURI,
                                                         ATTIDX_SYSTEM,
                                                         null);
-        allAttrs[ATT_TARGET_N_N]        =   new OneAttr(SchemaSymbols.ATT_TARGETNAMESPACE,
+        allAttrs[ATT_TARGET_N_N]         =   new OneAttr(SchemaSymbols.ATT_TARGETNAMESPACE,
                                                         DT_ANYURI,
                                                         ATTIDX_TARGETNAMESPACE,
                                                         null);
-        allAttrs[ATT_TYPE_N]            =   new OneAttr(SchemaSymbols.ATT_TYPE,
+        allAttrs[ATT_TYPE_N]             =   new OneAttr(SchemaSymbols.ATT_TYPE,
                                                         DT_QNAME,
                                                         ATTIDX_TYPE,
                                                         null);
-        allAttrs[ATT_USE_D]             =   new OneAttr(SchemaSymbols.ATT_USE,
+        allAttrs[ATT_USE_D]              =   new OneAttr(SchemaSymbols.ATT_USE,
                                                         DT_USE,
                                                         ATTIDX_USE,
                                                         INT_USE_OPTIONAL);
-        allAttrs[ATT_VALUE_NNI_N]       =   new OneAttr(SchemaSymbols.ATT_VALUE,
+        allAttrs[ATT_VALUE_NNI_N]        =   new OneAttr(SchemaSymbols.ATT_VALUE,
                                                         DT_NONNEGINT,
                                                         ATTIDX_VALUE,
                                                         null);
-        allAttrs[ATT_VALUE_PI_N]        =   new OneAttr(SchemaSymbols.ATT_VALUE,
+        allAttrs[ATT_VALUE_PI_N]         =   new OneAttr(SchemaSymbols.ATT_VALUE,
                                                         DT_POSINT,
                                                         ATTIDX_VALUE,
                                                         null);
-        allAttrs[ATT_VALUE_STR_N]       =   new OneAttr(SchemaSymbols.ATT_VALUE,
+        allAttrs[ATT_VALUE_STR_N]        =   new OneAttr(SchemaSymbols.ATT_VALUE,
                                                         DT_STRING,
                                                         ATTIDX_VALUE,
                                                         null);
-        allAttrs[ATT_VALUE_WS_N]        =   new OneAttr(SchemaSymbols.ATT_VALUE,
+        allAttrs[ATT_VALUE_WS_N]         =   new OneAttr(SchemaSymbols.ATT_VALUE,
                                                         DT_WHITESPACE,
                                                         ATTIDX_VALUE,
                                                         null);
-        allAttrs[ATT_VERSION_N]         =   new OneAttr(SchemaSymbols.ATT_VERSION,
+        allAttrs[ATT_VERSION_N]          =   new OneAttr(SchemaSymbols.ATT_VERSION,
                                                         DT_TOKEN,
                                                         ATTIDX_VERSION,
                                                         null);
-        allAttrs[ATT_XML_LANG]          =   new OneAttr(SchemaSymbols.ATT_XML_LANG,
+        allAttrs[ATT_XML_LANG]           =   new OneAttr(SchemaSymbols.ATT_XML_LANG,
                                                         DT_LANGUAGE,
                                                         ATTIDX_XML_LANG,
                                                         null);
-        allAttrs[ATT_XPATH_R]           =   new OneAttr(SchemaSymbols.ATT_XPATH,
+        allAttrs[ATT_XPATH_R]            =   new OneAttr(SchemaSymbols.ATT_XPATH,
                                                         DT_XPATH,
                                                         ATTIDX_XPATH,
                                                         null);
-        allAttrs[ATT_XPATH1_R]          =   new OneAttr(SchemaSymbols.ATT_XPATH,
+        allAttrs[ATT_XPATH1_R]           =   new OneAttr(SchemaSymbols.ATT_XPATH,
                                                         DT_XPATH1,
                                                         ATTIDX_XPATH,
                                                         null);
-        allAttrs[ATT_TEST_XPATH_R]      =   new OneAttr(SchemaSymbols.ATT_TEST,
+        allAttrs[ATT_TEST_XPATH_R]       =   new OneAttr(SchemaSymbols.ATT_TEST,
                                                         DT_XPATH1,
                                                         ATTIDX_XPATH,
                                                         null);
-        allAttrs[ATT_DEFAULT_XPATH_NS_N]=   new OneAttr(SchemaSymbols.ATT_XPATH_DEFAULT_NS,
-                                                        DT_XPATH_DEFAULT_NS,
-                                                        ATTIDX_XPATHDEFAULTNS,
-                                                        null);
+        
 
         // step 4: for each element, make a list of possible attributes
         Container attrList;
@@ -952,6 +977,24 @@
         // xpathDefaultNamespace = (anyURI | (##defaultNamespace | ##targetNamespace | ##local))
         attrList.put(SchemaSymbols.ATT_XPATH_DEFAULT_NS, allAttrs[ATT_DEFAULT_XPATH_NS_N]);
         fEleAttrsMapL.put(SchemaSymbols.ELT_ASSERT, attrList);
+
+        // for element "defaultOpenContent" - global
+        attrList = Container.getContainer(3);
+        // appliesToEmpty = boolean : false
+        attrList.put(SchemaSymbols.ATT_APPLIESTOEMPTY, allAttrs[ATT_APPLIESTO_EMPTY_D]);
+        // id = ID
+        attrList.put(SchemaSymbols.ATT_ID, allAttrs[ATT_ID_N]);
+        // mode = (interleave | suffix) : interleave
+        attrList.put(SchemaSymbols.ATT_MODE, allAttrs[ATT_MODE_D]);
+        /*fEleAttrs11MapG*/fEleAttrsMapG.put(SchemaSymbols.ELT_DEFAULTOPENCONTENT, attrList);
+
+        // for element "openContent" - local
+        attrList = Container.getContainer(2);
+        // id = ID
+        attrList.put(SchemaSymbols.ATT_ID, allAttrs[ATT_ID_N]);
+        // mode = (none | interleave | suffix) : interleave
+        attrList.put(SchemaSymbols.ATT_MODE, allAttrs[ATT_MODE1_D]);
+        /*fEleAttrs11MapL*/fEleAttrsMapL.put(SchemaSymbols.ELT_OPENCONTENT, attrList);
     }
 
     // used to resolver namespace prefixes
@@ -1544,6 +1587,23 @@
                 throw new InvalidDatatypeValueException("cvc-enumeration-valid",
                                                         new Object[]{value, "(optional | prohibited | required)"});
             break;
+        case DT_MODE1:
+            // value = none | interleave | suffix
+            if (value.equals (SchemaSymbols.ATTVAL_NONE)) {
+                retValue = INT_MODE_NONE;
+                break;
+            }
+        case DT_MODE:
+            // value = interleave | suffix
+            if (value.equals (SchemaSymbols.ATTVAL_INTERLEAVE))
+                retValue = INT_MODE_INTERLEAVE;
+            else if (value.equals (SchemaSymbols.ATTVAL_SUFFIX))
+                retValue = INT_MODE_SUFFIX;
+            else
+                throw new InvalidDatatypeValueException("cvc-enumeration-valid",
+                                                        (dvIndex == DT_MODE1) ? new Object[]{value, "(none | interleave | suffix)"}
+                                                                              : new Object[]{value, "(interleave | sufix)"});
+            break;
         case DT_WHITESPACE:
             // value = preserve | replace | collapse
             if (value.equals (SchemaSymbols.ATTVAL_PRESERVE))



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