Free Trial - Stylus Studio, The World's Best XML IDE!


com.saxonica.validate
Class ValidationStack

java.lang.Object
  |
  +--net.sf.saxon.event.ProxyReceiver
        |
        +--com.saxonica.validate.ValidationStack
All Implemented Interfaces:
Receiver, javax.xml.transform.Result

public class ValidationStack
extends ProxyReceiver
implements Receiver

This class manages the receivers that do element content validation. It maintains a stack of Validators, each of which does local element validation of the contents of a single element, adding a new validator to the stack to handle each layer of nesting.


Field Summary
 
Fields inherited from class net.sf.saxon.event.ProxyReceiver
baseReceiver, config, systemId
 
Fields inherited from interface javax.xml.transform.Result
PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING
 
Constructor Summary
ValidationStack(Receiver out, int initialValidationMode)
           
 
Method Summary
 void attribute(int nameCode, int typeCode, java.lang.CharSequence value, int properties)
          Handle an attribute
 void characters(java.lang.CharSequence chars, int properties)
          Notify character data.
 void endElement()
          End of element
 void setConstraintChecker(ConstraintChecker checker)
          Set the constraint checker in use (if any).
 void setDocumentLocator(org.xml.sax.Locator locator)
          Set the Document Locator
 void setInitialValidator(Validator validator)
          Set the initial validator to be used for the outermost element
 void setNamespaceResolver(NamespaceResolver resolver)
          Set the NamespaceResolver to be used for resolving QName-valued attributes
 void setXSIType(SchemaType type)
          Set the value of xsi:type, if present.
 void startContent()
          Notify the start of the content, that is, the completion of all attributes and namespaces.
 void startElement(int nameCode, int typeCode, int properties)
          Output element start tag
 
Methods inherited from class net.sf.saxon.event.ProxyReceiver
comment, endDocument, getConfiguration, getNamePool, getSystemId, getUnderlyingReceiver, namespace, processingInstruction, setConfiguration, setSystemId, setUnderlyingReceiver, setUnparsedEntity, startDocument
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.saxon.event.Receiver
comment, endDocument, getConfiguration, namespace, processingInstruction, setConfiguration, setSystemId, setUnparsedEntity, startDocument
 
Methods inherited from interface javax.xml.transform.Result
getSystemId
 

Constructor Detail

ValidationStack

public ValidationStack(Receiver out,
                       int initialValidationMode)
Method Detail

setDocumentLocator

public void setDocumentLocator(org.xml.sax.Locator locator)
                        throws javax.xml.transform.TransformerException
Set the Document Locator

Specified by:
setDocumentLocator in interface Receiver
Overrides:
setDocumentLocator in class ProxyReceiver
javax.xml.transform.TransformerException

setConstraintChecker

public void setConstraintChecker(ConstraintChecker checker)
Set the constraint checker in use (if any). The ValidationStack is responsible for telling the constraint checker about the ElementDeclaration that defines the uniqueness constraints for the current element. This is done immediately after the startElement call.


setXSIType

public void setXSIType(SchemaType type)
Set the value of xsi:type, if present. This will be called immediately before the startElement call for the element on which the xsi:type attribute appears.


setNamespaceResolver

public void setNamespaceResolver(NamespaceResolver resolver)
Set the NamespaceResolver to be used for resolving QName-valued attributes


startElement

public void startElement(int nameCode,
                         int typeCode,
                         int properties)
                  throws javax.xml.transform.TransformerException
Output element start tag

Specified by:
startElement in interface Receiver
Overrides:
startElement in class ProxyReceiver
Parameters:
nameCode - integer code identifying the name of the element within the name pool.
typeCode - integer code identifying the element's type within the name pool.
javax.xml.transform.TransformerException

setInitialValidator

public void setInitialValidator(Validator validator)
Set the initial validator to be used for the outermost element


attribute

public void attribute(int nameCode,
                      int typeCode,
                      java.lang.CharSequence value,
                      int properties)
               throws javax.xml.transform.TransformerException
Handle an attribute

Specified by:
attribute in interface Receiver
Overrides:
attribute in class ProxyReceiver
Parameters:
nameCode - integer identifying the name of the attribute
typeCode - integer identifying the type annotation (ignored)
value - the value of the attribute
properties - additional properties of the attribute
Throws:
javax.xml.transform.TransformerException - On any failure to write the attribute

startContent

public final void startContent()
                        throws javax.xml.transform.TransformerException
Notify the start of the content, that is, the completion of all attributes and namespaces. Note that the initial receiver of output from XSLT instructions will not receive this event, it has to detect it itself. Note that this event is reported for every element even if it has no attributes, no namespaces, and no content.

Specified by:
startContent in interface Receiver
Overrides:
startContent in class ProxyReceiver
javax.xml.transform.TransformerException

characters

public void characters(java.lang.CharSequence chars,
                       int properties)
                throws javax.xml.transform.TransformerException
Description copied from interface: Receiver
Notify character data. Note that some receivers may require the character data to be sent in a single event, but in general this is not a requirement.

Specified by:
characters in interface Receiver
Overrides:
characters in class ProxyReceiver
Parameters:
chars - The characters
properties - Bit significant value. The following bits are defined:
DISABLE_ESCAPING
Disable escaping for this text node
USE_CDATA
Output as a CDATA section
NO_SPECIAL_CHARACTERS
Value contains no special characters
WHITESPACE
Text is all whitespace
javax.xml.transform.TransformerException

endElement

public void endElement()
                throws javax.xml.transform.TransformerException
End of element

Specified by:
endElement in interface Receiver
Overrides:
endElement in class ProxyReceiver
javax.xml.transform.TransformerException


Stylus Studio features integrated development and debugging support for Saxon in the XQuery editor and XSLT editor.