Save This Page
Home » openjdk-7 » com.sun.org.apache.xerces.internal » dom » [javadoc | source]
    1   /*
    2    * reserved comment block
    3    * DO NOT REMOVE OR ALTER!
    4    */
    5   /*
    6    * Copyright 2002-2004 The Apache Software Foundation.
    7    *
    8    * Licensed under the Apache License, Version 2.0 (the "License");
    9    * you may not use this file except in compliance with the License.
   10    * You may obtain a copy of the License at
   11    *
   12    *      http://www.apache.org/licenses/LICENSE-2.0
   13    *
   14    * Unless required by applicable law or agreed to in writing, software
   15    * distributed under the License is distributed on an "AS IS" BASIS,
   16    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   17    * See the License for the specific language governing permissions and
   18    * limitations under the License.
   19    */
   20   
   21   package com.sun.org.apache.xerces.internal.dom;
   22   
   23   import java.io.IOException;
   24   import java.io.NotSerializableException;
   25   import java.io.ObjectInputStream;
   26   import java.io.ObjectOutputStream;
   27   
   28   import com.sun.org.apache.xerces.internal.xs.ElementPSVI;
   29   import com.sun.org.apache.xerces.internal.xs;
   30   
   31   /**
   32    * Element namespace implementation; stores PSVI element items.
   33    *
   34    * @xerces.internal
   35    *
   36    * @author Sandy Gao, IBM
   37    *
   38    */
   39   public class PSVIElementNSImpl extends ElementNSImpl implements ElementPSVI {
   40   
   41       /** Serialization version. */
   42       static final long serialVersionUID = 6815489624636016068L;
   43   
   44       /**
   45        * Construct an element node.
   46        */
   47       public PSVIElementNSImpl(CoreDocumentImpl ownerDocument, String namespaceURI,
   48                                String qualifiedName, String localName) {
   49           super(ownerDocument, namespaceURI, qualifiedName, localName);
   50       }
   51   
   52       /**
   53        * Construct an element node.
   54        */
   55       public PSVIElementNSImpl(CoreDocumentImpl ownerDocument, String namespaceURI,
   56                                String qualifiedName) {
   57           super(ownerDocument, namespaceURI, qualifiedName);
   58       }
   59   
   60       /** element declaration */
   61       protected XSElementDeclaration fDeclaration = null;
   62   
   63       /** type of element, could be xsi:type */
   64       protected XSTypeDefinition fTypeDecl = null;
   65   
   66       /** true if clause 3.2 of Element Locally Valid (Element) (3.3.4)
   67         * is satisfied, otherwise false
   68         */
   69       protected boolean fNil = false;
   70   
   71       /** false if the element value was provided by the schema; true otherwise.
   72        */
   73       protected boolean fSpecified = true;
   74   
   75       /** schema normalized value property */
   76       protected String fNormalizedValue = null;
   77   
   78       /** schema actual value */
   79       protected Object fActualValue = null;
   80   
   81       /** schema actual value type */
   82       protected short fActualValueType = XSConstants.UNAVAILABLE_DT;
   83   
   84       /** actual value types if the value is a list */
   85       protected ShortList fItemValueTypes = null;
   86   
   87       /** http://www.w3.org/TR/xmlschema-1/#e-notation*/
   88       protected XSNotationDeclaration fNotation = null;
   89   
   90       /** member type definition against which element was validated */
   91       protected XSSimpleTypeDefinition fMemberType = null;
   92   
   93       /** validation attempted: none, partial, full */
   94       protected short fValidationAttempted = ElementPSVI.VALIDATION_NONE;
   95   
   96       /** validity: valid, invalid, unknown */
   97       protected short fValidity = ElementPSVI.VALIDITY_NOTKNOWN;
   98   
   99       /** error codes */
  100       protected StringList fErrorCodes = null;
  101   
  102       /** validation context: could be QName or XPath expression*/
  103       protected String fValidationContext = null;
  104   
  105       /** the schema information property */
  106       protected XSModel fSchemaInformation = null;
  107   
  108       //
  109       // ElementPSVI methods
  110       //
  111   
  112       /**
  113        * [schema default]
  114        *
  115        * @return The canonical lexical representation of the declaration's {value constraint} value.
  116        * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_default>XML Schema Part 1: Structures [schema default]</a>
  117        */
  118       public String getSchemaDefault() {
  119           return fDeclaration == null ? null : fDeclaration.getConstraintValue();
  120       }
  121   
  122       /**
  123        * [schema normalized value]
  124        *
  125        *
  126        * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_normalized_value>XML Schema Part 1: Structures [schema normalized value]</a>
  127        * @return the normalized value of this item after validation
  128        */
  129       public String getSchemaNormalizedValue() {
  130           return fNormalizedValue;
  131       }
  132   
  133       /**
  134        * [schema specified]
  135        * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_specified">XML Schema Part 1: Structures [schema specified]</a>
  136        * @return false value was specified in schema, true value comes from the infoset
  137        */
  138       public boolean getIsSchemaSpecified() {
  139           return fSpecified;
  140       }
  141   
  142       /**
  143        * Determines the extent to which the document has been validated
  144        *
  145        * @return return the [validation attempted] property. The possible values are
  146        *         NO_VALIDATION, PARTIAL_VALIDATION and FULL_VALIDATION
  147        */
  148       public short getValidationAttempted() {
  149           return fValidationAttempted;
  150       }
  151   
  152       /**
  153        * Determine the validity of the node with respect
  154        * to the validation being attempted
  155        *
  156        * @return return the [validity] property. Possible values are:
  157        *         UNKNOWN_VALIDITY, INVALID_VALIDITY, VALID_VALIDITY
  158        */
  159       public short getValidity() {
  160           return fValidity;
  161       }
  162   
  163       /**
  164        * A list of error codes generated from validation attempts.
  165        * Need to find all the possible subclause reports that need reporting
  166        *
  167        * @return Array of error codes
  168        */
  169       public StringList getErrorCodes() {
  170           return fErrorCodes;
  171       }
  172   
  173   
  174       // This is the only information we can provide in a pipeline.
  175       public String getValidationContext() {
  176           return fValidationContext;
  177       }
  178   
  179       /**
  180        * [nil]
  181        * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-nil>XML Schema Part 1: Structures [nil]</a>
  182        * @return true if clause 3.2 of Element Locally Valid (Element) (3.3.4) above is satisfied, otherwise false
  183        */
  184       public boolean getNil() {
  185           return fNil;
  186       }
  187   
  188       /**
  189        * [notation]
  190        * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-notation>XML Schema Part 1: Structures [notation]</a>
  191        * @return The notation declaration.
  192        */
  193       public XSNotationDeclaration getNotation() {
  194           return fNotation;
  195       }
  196   
  197       /**
  198        * An item isomorphic to the type definition used to validate this element.
  199        *
  200        * @return  a type declaration
  201        */
  202       public XSTypeDefinition getTypeDefinition() {
  203           return fTypeDecl;
  204       }
  205   
  206       /**
  207        * If and only if that type definition is a simple type definition
  208        * with {variety} union, or a complex type definition whose {content type}
  209        * is a simple thype definition with {variety} union, then an item isomorphic
  210        * to that member of the union's {member type definitions} which actually
  211        * validated the element item's normalized value.
  212        *
  213        * @return  a simple type declaration
  214        */
  215       public XSSimpleTypeDefinition getMemberTypeDefinition() {
  216           return fMemberType;
  217       }
  218   
  219       /**
  220        * An item isomorphic to the element declaration used to validate
  221        * this element.
  222        *
  223        * @return  an element declaration
  224        */
  225       public XSElementDeclaration getElementDeclaration() {
  226           return fDeclaration;
  227       }
  228   
  229       /**
  230        * [schema information]
  231        * @see <a href="http://www.w3.org/TR/xmlschema-1/#e-schema_information">XML Schema Part 1: Structures [schema information]</a>
  232        * @return The schema information property if it's the validation root,
  233        *         null otherwise.
  234        */
  235       public XSModel getSchemaInformation() {
  236           return fSchemaInformation;
  237       }
  238   
  239       /**
  240        * Copy PSVI properties from another psvi item.
  241        *
  242        * @param attr  the source of attribute PSVI items
  243        */
  244       public void setPSVI(ElementPSVI elem) {
  245           this.fDeclaration = elem.getElementDeclaration();
  246           this.fNotation = elem.getNotation();
  247           this.fValidationContext = elem.getValidationContext();
  248           this.fTypeDecl = elem.getTypeDefinition();
  249           this.fSchemaInformation = elem.getSchemaInformation();
  250           this.fValidity = elem.getValidity();
  251           this.fValidationAttempted = elem.getValidationAttempted();
  252           this.fErrorCodes = elem.getErrorCodes();
  253           this.fNormalizedValue = elem.getSchemaNormalizedValue();
  254           this.fActualValue = elem.getActualNormalizedValue();
  255           this.fActualValueType = elem.getActualNormalizedValueType();
  256           this.fItemValueTypes = elem.getItemValueTypes();
  257           this.fMemberType = elem.getMemberTypeDefinition();
  258           this.fSpecified = elem.getIsSchemaSpecified();
  259       }
  260   
  261       /* (non-Javadoc)
  262        * @see com.sun.org.apache.xerces.internal.xs.ItemPSVI#getActualNormalizedValue()
  263        */
  264       public Object getActualNormalizedValue() {
  265           return this.fActualValue;
  266       }
  267   
  268       /* (non-Javadoc)
  269        * @see com.sun.org.apache.xerces.internal.xs.ItemPSVI#getActualNormalizedValueType()
  270        */
  271       public short getActualNormalizedValueType() {
  272           return this.fActualValueType;
  273       }
  274   
  275       /* (non-Javadoc)
  276        * @see com.sun.org.apache.xerces.internal.xs.ItemPSVI#getItemValueTypes()
  277        */
  278       public ShortList getItemValueTypes() {
  279           return this.fItemValueTypes;
  280       }
  281   
  282       // REVISIT: Forbid serialization of PSVI DOM until
  283       // we support object serialization of grammars -- mrglavas
  284   
  285       private void writeObject(ObjectOutputStream out)
  286           throws IOException {
  287           throw new NotSerializableException(getClass().getName());
  288       }
  289   
  290       private void readObject(ObjectInputStream in)
  291           throws IOException, ClassNotFoundException {
  292           throw new NotSerializableException(getClass().getName());
  293       }
  294   }

Save This Page
Home » openjdk-7 » com.sun.org.apache.xerces.internal » dom » [javadoc | source]