< prev index next >

src/java.xml/share/classes/com/sun/org/apache/xerces/internal/jaxp/JAXPValidatorComponent.java

Print this page




  65  * Runs events through a {@link javax.xml.validation.ValidatorHandler}
  66  * and performs validation/infoset-augmentation by an external validator.
  67  *
  68  * <p>
  69  * This component sets up the pipeline as follows:
  70  *
  71  * <!-- this picture may look teribble on your IDE but it is correct. -->
  72  * <pre>
  73  *             __                                           __
  74  *            /  |==> XNI2SAX --> Validator --> SAX2XNI ==>|
  75  *           /   |                                         |
  76  *       ==>| Tee|                                         | next
  77  *           \   |                                         |  component
  78  *            \  |============other XNI events============>|
  79  *             ~~                                           ~~
  80  * </pre>
  81  * <p>
  82  * only those events that need to go through Validator will go the 1st route,
  83  * and other events go the 2nd direct route.
  84  *
  85  * @author Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
  86  */
  87 final class JAXPValidatorComponent
  88     extends TeeXMLDocumentFilterImpl implements XMLComponent {
  89 
  90     /** Property identifier: entity manager. */
  91     private static final String ENTITY_MANAGER =
  92         Constants.XERCES_PROPERTY_PREFIX + Constants.ENTITY_MANAGER_PROPERTY;
  93 
  94     /** Property identifier: error reporter. */
  95     private static final String ERROR_REPORTER =
  96         Constants.XERCES_PROPERTY_PREFIX + Constants.ERROR_REPORTER_PROPERTY;
  97 
  98     /** Property identifier: symbol table. */
  99     private static final String SYMBOL_TABLE =
 100         Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY;
 101 
 102     // pipeline parts
 103     private final ValidatorHandler validator;
 104     private final XNI2SAX xni2sax = new XNI2SAX();
 105     private final SAX2XNI sax2xni = new SAX2XNI();


 327                 prefix = symbolize(qname.substring(0,idx));
 328 
 329             localName = symbolize(localName);
 330             qname = symbolize(qname);
 331             uri = symbolize(uri);
 332 
 333             // notify handlers
 334             fQName.setValues(prefix, localName, qname, uri);
 335             return fQName;
 336         }
 337     }
 338 
 339     /**
 340      * Converts {@link XNI} events to {@link ContentHandler} events.
 341      *
 342      * <p>
 343      * Deriving from {@link DefaultXMLDocumentHandler}
 344      * to reuse its default {@link com.sun.org.apache.xerces.internal.xni.XMLDocumentHandler}
 345      * implementation.
 346      *
 347      * @author Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
 348      */
 349     private final class XNI2SAX extends DefaultXMLDocumentHandler {
 350 
 351         private ContentHandler fContentHandler;
 352 
 353         private String fVersion;
 354 
 355         /** Namespace context */
 356         protected NamespaceContext fNamespaceContext;
 357 
 358         /**
 359          * For efficiency, we reuse one instance.
 360          */
 361         private final AttributesProxy fAttributesProxy = new AttributesProxy(null);
 362 
 363         public void setContentHandler( ContentHandler handler ) {
 364             this.fContentHandler = handler;
 365         }
 366 
 367         public ContentHandler getContentHandler() {




  65  * Runs events through a {@link javax.xml.validation.ValidatorHandler}
  66  * and performs validation/infoset-augmentation by an external validator.
  67  *
  68  * <p>
  69  * This component sets up the pipeline as follows:
  70  *
  71  * <!-- this picture may look teribble on your IDE but it is correct. -->
  72  * <pre>
  73  *             __                                           __
  74  *            /  |==> XNI2SAX --> Validator --> SAX2XNI ==>|
  75  *           /   |                                         |
  76  *       ==>| Tee|                                         | next
  77  *           \   |                                         |  component
  78  *            \  |============other XNI events============>|
  79  *             ~~                                           ~~
  80  * </pre>
  81  * <p>
  82  * only those events that need to go through Validator will go the 1st route,
  83  * and other events go the 2nd direct route.
  84  *
  85  * @author Kohsuke Kawaguchi
  86  */
  87 final class JAXPValidatorComponent
  88     extends TeeXMLDocumentFilterImpl implements XMLComponent {
  89 
  90     /** Property identifier: entity manager. */
  91     private static final String ENTITY_MANAGER =
  92         Constants.XERCES_PROPERTY_PREFIX + Constants.ENTITY_MANAGER_PROPERTY;
  93 
  94     /** Property identifier: error reporter. */
  95     private static final String ERROR_REPORTER =
  96         Constants.XERCES_PROPERTY_PREFIX + Constants.ERROR_REPORTER_PROPERTY;
  97 
  98     /** Property identifier: symbol table. */
  99     private static final String SYMBOL_TABLE =
 100         Constants.XERCES_PROPERTY_PREFIX + Constants.SYMBOL_TABLE_PROPERTY;
 101 
 102     // pipeline parts
 103     private final ValidatorHandler validator;
 104     private final XNI2SAX xni2sax = new XNI2SAX();
 105     private final SAX2XNI sax2xni = new SAX2XNI();


 327                 prefix = symbolize(qname.substring(0,idx));
 328 
 329             localName = symbolize(localName);
 330             qname = symbolize(qname);
 331             uri = symbolize(uri);
 332 
 333             // notify handlers
 334             fQName.setValues(prefix, localName, qname, uri);
 335             return fQName;
 336         }
 337     }
 338 
 339     /**
 340      * Converts {@link XNI} events to {@link ContentHandler} events.
 341      *
 342      * <p>
 343      * Deriving from {@link DefaultXMLDocumentHandler}
 344      * to reuse its default {@link com.sun.org.apache.xerces.internal.xni.XMLDocumentHandler}
 345      * implementation.
 346      *
 347      * @author Kohsuke Kawaguchi
 348      */
 349     private final class XNI2SAX extends DefaultXMLDocumentHandler {
 350 
 351         private ContentHandler fContentHandler;
 352 
 353         private String fVersion;
 354 
 355         /** Namespace context */
 356         protected NamespaceContext fNamespaceContext;
 357 
 358         /**
 359          * For efficiency, we reuse one instance.
 360          */
 361         private final AttributesProxy fAttributesProxy = new AttributesProxy(null);
 362 
 363         public void setContentHandler( ContentHandler handler ) {
 364             this.fContentHandler = handler;
 365         }
 366 
 367         public ContentHandler getContentHandler() {


< prev index next >