Author: mukulg
Date: Mon May 30 04:47:00 2011
New Revision: 1128992
URL: http://svn.apache.org/viewvc?rev=1128992&view=rev
Log:
committing implementation of [type alternative] schema 1.1 PSVI property.
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/dom/PSVIElementNSImpl.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/ElementPSVImpl.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDTypeAlternativeValidator.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/alternative/XSTypeAlternativeImpl.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/ElementPSVI.java
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSTypeAlternative.java
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/dom/PSVIElementNSImpl.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/dom/PSVIElementNSImpl.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/dom/PSVIElementNSImpl.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/dom/PSVIElementNSImpl.java
Mon May 30 04:47:00 2011
@@ -35,6 +35,7 @@ import org.apache.xerces.xs.XSElementDec
import org.apache.xerces.xs.XSModel;
import org.apache.xerces.xs.XSNotationDeclaration;
import org.apache.xerces.xs.XSSimpleTypeDefinition;
+import org.apache.xerces.xs.XSTypeAlternative;
import org.apache.xerces.xs.XSTypeDefinition;
import org.apache.xerces.xs.XSValue;
import org.apache.xerces.xs.datatypes.ObjectList;
@@ -114,6 +115,9 @@ public class PSVIElementNSImpl extends E
/** failed assertions */
protected ObjectList fFailedAssertions = null;
+ /** type alternative **/
+ protected XSTypeAlternative fTypeAlternative = null;
+
//
// ElementPSVI methods
//
@@ -300,6 +304,14 @@ public class PSVIElementNSImpl extends E
return ObjectListImpl.EMPTY_LIST;
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.xerces.xs.ElementPSVI#getTypeAlternative()
+ */
+ public XSTypeAlternative getTypeAlternative() {
+ return fTypeAlternative;
+ }
+
/**
* Copy PSVI properties from another psvi item.
*
@@ -325,8 +337,9 @@ public class PSVIElementNSImpl extends E
}
this.fSpecified = elem.getIsSchemaSpecified();
this.fNil = elem.getNil();
+ this.fTypeAlternative = elem.getTypeAlternative();
this.fInheritedAttributes = elem.getInheritedAttributes();
- this.fFailedAssertions = elem.getFailedAssertions();
+ this.fFailedAssertions = elem.getFailedAssertions();
}
/* (non-Javadoc)
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/Constants.java
Mon May 30 04:47:00 2011
@@ -450,6 +450,9 @@ public final class Constants {
/** Attribute PSVI is stored in augmentations using string
"ATTRIBUTE_PSVI" */
public final static String ATTRIBUTE_PSVI = "ATTRIBUTE_PSVI";
+ /** [type alternative] PSVI is stored in augmentations using string
"TYPE_ALTERNATIVE" */
+ public final static String TYPE_ALTERNATIVE = "TYPE_ALTERNATIVE";
+
/**
* Boolean indicating whether an attribute is declared in the DTD is
stored
* in augmentations using the string "ATTRIBUTE_DECLARED". The absence of
this
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/ElementPSVImpl.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/ElementPSVImpl.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/ElementPSVImpl.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/ElementPSVImpl.java
Mon May 30 04:47:00 2011
@@ -28,6 +28,7 @@ import org.apache.xerces.xs.XSElementDec
import org.apache.xerces.xs.XSModel;
import org.apache.xerces.xs.XSNotationDeclaration;
import org.apache.xerces.xs.XSSimpleTypeDefinition;
+import org.apache.xerces.xs.XSTypeAlternative;
import org.apache.xerces.xs.XSTypeDefinition;
import org.apache.xerces.xs.XSValue;
import org.apache.xerces.xs.datatypes.ObjectList;
@@ -96,6 +97,9 @@ public class ElementPSVImpl implements E
/** failed assertions **/
protected ObjectList fFailedAssertions = null;
+ /** type alternative **/
+ protected XSTypeAlternative fTypeAlternative = null;
+
public ElementPSVImpl() {}
public ElementPSVImpl(boolean isConstant, ElementPSVI elementPSVI) {
@@ -108,8 +112,9 @@ public class ElementPSVImpl implements E
fValidationAttempted = elementPSVI.getValidationAttempted();
fValidity = elementPSVI.getValidity();
fValidationContext = elementPSVI.getValidationContext();
+ fTypeAlternative = elementPSVI.getTypeAlternative();
fInheritedAttributes = elementPSVI.getInheritedAttributes();
- fFailedAssertions = elementPSVI.getFailedAssertions();
+ fFailedAssertions = elementPSVI.getFailedAssertions();
if (elementPSVI instanceof ElementPSVImpl) {
final ElementPSVImpl elementPSVIImpl = (ElementPSVImpl)
elementPSVI;
fErrors = (elementPSVIImpl.fErrors != null) ?
@@ -353,6 +358,14 @@ public class ElementPSVImpl implements E
return ObjectListImpl.EMPTY_LIST;
}
+ /*
+ * (non-Javadoc)
+ * @see org.apache.xerces.xs.ElementPSVI#getTypeAlternative()
+ */
+ public XSTypeAlternative getTypeAlternative() {
+ return fTypeAlternative;
+ }
+
/**
* Reset() should be called in validator startElement(..) method.
*/
@@ -367,8 +380,9 @@ public class ElementPSVImpl implements E
fErrors = null;
fValidationContext = null;
fValue.reset();
+ fTypeAlternative = null;
fInheritedAttributes = null;
- fFailedAssertions = null;
+ fFailedAssertions = null;
}
public void copySchemaInformationTo(ElementPSVImpl target) {
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
Mon May 30 04:47:00 2011
@@ -88,6 +88,7 @@ import org.apache.xerces.xs.XSAttributeU
import org.apache.xerces.xs.XSConstants;
import org.apache.xerces.xs.XSObjectList;
import org.apache.xerces.xs.XSSimpleTypeDefinition;
+import org.apache.xerces.xs.XSTypeAlternative;
import org.apache.xerces.xs.XSTypeDefinition;
import org.apache.xerces.xs.datatypes.ObjectList;
import org.xml.sax.SAXNotRecognizedException;
@@ -1275,6 +1276,9 @@ public class XMLSchemaValidator
/** Failed assertions. */
private ObjectList fFailedAssertions;
+
+ /** Type Alternative augmentation information. */
+ private XSTypeAlternative fTypeAlternative;
/** type stack. */
private XSTypeDefinition[] fTypeStack = new
XSTypeDefinition[INITIAL_STACK_SIZE];
@@ -2202,10 +2206,12 @@ public class XMLSchemaValidator
//process type alternatives
if (fTypeAlternativesChecking && fCurrentElemDecl != null) {
- XSTypeDefinition currentType =
fTypeAlternativeValidator.getCurrentType(fCurrentElemDecl, element, attributes,
fInheritableAttrList);
+ Augmentations typeAltAugs = new AugmentationsImpl();
+ XSTypeDefinition currentType =
fTypeAlternativeValidator.getCurrentType(fCurrentElemDecl, element, attributes,
fInheritableAttrList, typeAltAugs);
if (currentType != null) {
fCurrentType = currentType;
}
+ fTypeAlternative =
(XSTypeAlternative)typeAltAugs.getItem(Constants.TYPE_ALTERNATIVE);
}
// check if we should be ignoring xsi:type on this element
@@ -2449,11 +2455,13 @@ public class XMLSchemaValidator
// PSVI: add nil
fCurrentPSVI.fNil = fNil;
if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1) {
+ // PSVI: add type alternative
+ fCurrentPSVI.fTypeAlternative = fTypeAlternative;
// PSVI: add inherited attributes
fInhrAttrCountStack.push(fInheritableAttrList.size());
fCurrentPSVI.fInheritedAttributes =
getInheritedAttributesForPSVI();
// PSVI: add failed assertions
- fCurrentPSVI.fFailedAssertions = fFailedAssertions;
+ fCurrentPSVI.fFailedAssertions = fFailedAssertions;
}
}
@@ -2723,13 +2731,16 @@ public class XMLSchemaValidator
fCurrentPSVI.fNotation = this.fNotation;
fCurrentPSVI.fValidationContext = this.fValidationRoot;
fCurrentPSVI.fNil = this.fNil;
- ObjectList inheritedAttributesForPsvi = null;
- if (fInhrAttrCountStack.size() > 0) {
- fInheritableAttrList.setSize(fInhrAttrCountStack.pop());
- inheritedAttributesForPsvi = getInheritedAttributesForPSVI();
+ if (fSchemaVersion == Constants.SCHEMA_VERSION_1_1) {
+ fCurrentPSVI.fTypeAlternative = this.fTypeAlternative;
+ ObjectList inheritedAttributesForPsvi = null;
+ if (fInhrAttrCountStack.size() > 0) {
+ fInheritableAttrList.setSize(fInhrAttrCountStack.pop());
+ inheritedAttributesForPsvi =
getInheritedAttributesForPSVI();
+ }
+ fCurrentPSVI.fInheritedAttributes = inheritedAttributesForPsvi;
+ fCurrentPSVI.fFailedAssertions = this.fFailedAssertions;
}
- fCurrentPSVI.fInheritedAttributes = inheritedAttributesForPsvi;
- fCurrentPSVI.fFailedAssertions = this.fFailedAssertions;
// PSVI: validation attempted
// nothing below or at the same level has none or partial
// (which means this level is strictly assessed, and all chidren
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDTypeAlternativeValidator.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDTypeAlternativeValidator.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDTypeAlternativeValidator.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/XSDTypeAlternativeValidator.java
Mon May 30 04:47:00 2011
@@ -19,14 +19,17 @@ package org.apache.xerces.impl.xs;
import java.util.Vector;
+import org.apache.xerces.impl.Constants;
import org.apache.xerces.impl.xs.alternative.Test;
import org.apache.xerces.impl.xs.alternative.XSTypeAlternativeImpl;
import org.apache.xerces.impl.xs.util.XSTypeHelper;
import org.apache.xerces.util.XMLAttributesImpl;
+import org.apache.xerces.xni.Augmentations;
import org.apache.xerces.xni.QName;
import org.apache.xerces.xni.XMLAttributes;
import org.apache.xerces.xs.AttributePSVI;
import org.apache.xerces.xs.XSAttributeDeclaration;
+import org.apache.xerces.xs.XSTypeAlternative;
import org.apache.xerces.xs.XSTypeDefinition;
/**
@@ -52,9 +55,10 @@ public class XSDTypeAlternativeValidator
/*
* Determine the schema type applicable for an element declaration, using
type alternative information.
*/
- public XSTypeDefinition getCurrentType(XSElementDecl currentElemDecl,
QName element, XMLAttributes attributes, Vector inheritableAttrList) {
+ public XSTypeDefinition getCurrentType(XSElementDecl currentElemDecl,
QName element, XMLAttributes attributes, Vector inheritableAttrList,
Augmentations typeAltAugs) {
- XSTypeDefinition currentType = null;
+ XSTypeDefinition currentType = null;
+ XSTypeAlternative typeAlternativeAugmentation = null;
XSTypeAlternativeImpl[] typeAlternatives =
currentElemDecl.getTypeAlternatives();
if (typeAlternatives != null) {
@@ -64,6 +68,7 @@ public class XSDTypeAlternativeValidator
Test ctaTest = typeAlternatives[typeAltIdx].getTest();
if (ctaTest != null && ctaTest.evaluateTest(element,
ctaAttributes)) {
currentType =
typeAlternatives[typeAltIdx].getTypeDefinition();
+ typeAlternativeAugmentation =
typeAlternatives[typeAltIdx];
break;
}
}
@@ -72,10 +77,15 @@ public class XSDTypeAlternativeValidator
XSTypeAlternativeImpl defType =
currentElemDecl.getDefaultTypeDefinition();
if (defType != null) {
currentType = defType.getTypeDefinition();
+ if (typeAlternativeAugmentation == null) {
+ typeAlternativeAugmentation = defType;
+ }
}
}
}
+ typeAltAugs.putItem(Constants.TYPE_ALTERNATIVE,
typeAlternativeAugmentation);
+
return currentType;
} // getCurrentType
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/alternative/XSTypeAlternativeImpl.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/alternative/XSTypeAlternativeImpl.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/alternative/XSTypeAlternativeImpl.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/impl/xs/alternative/XSTypeAlternativeImpl.java
Mon May 30 04:47:00 2011
@@ -25,7 +25,7 @@ import org.apache.xerces.xs.XSTypeAltern
import org.apache.xerces.xs.XSTypeDefinition;
/**
- * XML schema type alternative component
+ * XML schema type alternative component.
*
* @xerces.internal
*
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/ElementPSVI.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/ElementPSVI.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/ElementPSVI.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/ElementPSVI.java
Mon May 30 04:47:00 2011
@@ -55,5 +55,10 @@ public interface ElementPSVI extends Ite
* [failed assertions]: failed assertions.
*/
public ObjectList getFailedAssertions();
+
+ /**
+ * [type alternative]: type alternative.
+ */
+ public XSTypeAlternative getTypeAlternative();
}
Modified:
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSTypeAlternative.java
URL:
http://svn.apache.org/viewvc/xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSTypeAlternative.java?rev=1128992&r1=1128991&r2=1128992&view=diff
==============================================================================
---
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSTypeAlternative.java
(original)
+++
xerces/java/branches/xml-schema-1.1-dev/src/org/apache/xerces/xs/XSTypeAlternative.java
Mon May 30 04:47:00 2011
@@ -19,12 +19,12 @@ package org.apache.xerces.xs;
/**
* This interface represents the XML schema type alternative
- * component. Tyepe alternative component was first introduced
+ * component. Type alternative component was first introduced
* in the XML schema structures 1.1 specification as a means
* of implementing conditional type assignment.
*
* @author Hiranya Jayathilaka, University of Moratuwa
- * @version $Id:$
+ * @version $Id$
*/
public interface XSTypeAlternative extends XSObject {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]