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 2011/01/18 19:46:56 UTC
svn commit: r1060530 - in
/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs:
SchemaGrammar.java traversers/XSDHandler.java
Author: knoaman
Date: Tue Jan 18 18:46:56 2011
New Revision: 1060530
URL: http://svn.apache.org/viewvc?rev=1060530&view=rev
Log:
Allow reference to xsi attribute in schema documents (per XML Schema 1.1).
Ref, the recent discussion on xerces-dev list - http://markmail.org/message/sjo34dqenmhyzeno.
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/traversers/XSDHandler.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=1060530&r1=1060529&r2=1060530&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 Tue Jan 18 18:46:56 2011
@@ -1362,6 +1362,7 @@ public class SchemaGrammar implements XS
// 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);
+ private final static BuiltinSchemaGrammar SG_XSI11 = new BuiltinSchemaGrammar(GRAMMAR_XSI, Constants.SCHEMA_VERSION_1_1);
public static SchemaGrammar getS4SGrammar(short schemaVersion) {
if (schemaVersion == Constants.SCHEMA_VERSION_1_0) {
@@ -1373,6 +1374,14 @@ public class SchemaGrammar implements XS
return SG_SchemaNSExtended;
}
+
+ public static SchemaGrammar getXSIGrammar(short schemaVersion) {
+ if (schemaVersion == Constants.SCHEMA_VERSION_1_1) {
+ return SG_XSI11;
+ }
+
+ return SG_XSI;
+ }
static final XSComplexTypeDecl[] resize(XSComplexTypeDecl[] oldArray, int newSize) {
XSComplexTypeDecl[] newArray = new XSComplexTypeDecl[newSize];
Modified: xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java
URL: http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java?rev=1060530&r1=1060529&r2=1060530&view=diff
==============================================================================
--- xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java (original)
+++ xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java Tue Jan 18 18:46:56 2011
@@ -1793,6 +1793,17 @@ public class XSDHandler {
}
}
+ // XML Schema 1.1 allows reference to xsi attributes
+ if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1 &&
+ declType == ATTRIBUTE_TYPE &&
+ declToTraverse.uri == SchemaSymbols.URI_XSI) {
+ SchemaGrammar xsiGrammar = SchemaGrammar.getXSIGrammar(fSchemaVersion);
+ Object retObj = xsiGrammar.getGlobalAttributeDecl(declToTraverse.localpart);
+ if (retObj != null) {
+ return retObj;
+ }
+ }
+
// now check whether this document can access the requsted namespace
if (!currSchema.isAllowedNS(declToTraverse.uri)) {
// cannot get to this schema from the one containing the requesting decl
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org