elena 2003/02/19 10:07:39 Modified: java/src/org/apache/xerces/parsers IntegratedParserConfiguration.java Log: If namespace feature is off, we should issue an error when validating against XML Schema. Reorganizing IntegratedConfiguration configurePipeline() so that the namespace aware scanner is only used in the case namespace feature is turned on. Revision Changes Path 1.8 +61 -69 xml-xerces/java/src/org/apache/xerces/parsers/IntegratedParserConfiguration.java Index: IntegratedParserConfiguration.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/IntegratedParserConfiguration.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- IntegratedParserConfiguration.java 8 Jan 2003 23:01:27 -0000 1.7 +++ IntegratedParserConfiguration.java 19 Feb 2003 18:07:38 -0000 1.8 @@ -193,75 +193,67 @@ /** Configures the pipeline. */ - protected void configurePipeline() { - // setup dtd pipeline - if (fDTDScanner != null) { - if (fDTDProcessor != null) { - fDTDScanner.setDTDHandler(fDTDProcessor); - fDTDProcessor.setDTDHandler(fDTDHandler); - fDTDScanner.setDTDContentModelHandler(fDTDProcessor); - fDTDProcessor.setDTDContentModelHandler(fDTDContentModelHandler); - } else { - fDTDScanner.setDTDHandler(fDTDHandler); - fDTDScanner.setDTDContentModelHandler(fDTDContentModelHandler); - } - } - - // setup document pipeline - if ( fFeatures.get(XMLSCHEMA_VALIDATION) == Boolean.TRUE) { - // If schema validator was not in the pipeline insert it. - if (fSchemaValidator == null) { - fSchemaValidator = new XMLSchemaValidator(); - - // add schema component - fProperties.put(SCHEMA_VALIDATOR, fSchemaValidator); - addComponent(fSchemaValidator); - // add schema message formatter - if (fErrorReporter.getMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN) == null) { - XSMessageFormatter xmft = new XSMessageFormatter(); - fErrorReporter.putMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN, xmft); - } - - } - fProperties.put(DTD_VALIDATOR, fDTDValidator); - fProperties.put(DOCUMENT_SCANNER, fNamespaceScanner); - fScanner = fNamespaceScanner; - fNamespaceScanner.setDTDValidator(fDTDValidator); - fNamespaceScanner.setDocumentHandler(fDTDValidator); - fDTDValidator.setDocumentSource(fNamespaceScanner); - fDTDValidator.setDocumentHandler(fSchemaValidator); - fSchemaValidator.setDocumentSource(fDTDValidator); - fSchemaValidator.setDocumentHandler(fDocumentHandler); - fLastComponent = fSchemaValidator; - - } - else { - - if (fFeatures.get(NAMESPACES) == Boolean.TRUE) { - fScanner = fNamespaceScanner; - fProperties.put(DTD_VALIDATOR, fDTDValidator); - fProperties.put(DOCUMENT_SCANNER, fNamespaceScanner); - fNamespaceScanner.setDTDValidator(fDTDValidator); - fNamespaceScanner.setDocumentHandler(fDTDValidator); - fDTDValidator.setDocumentSource(fNamespaceScanner); - fDTDValidator.setDocumentHandler(fDocumentHandler); - fDocumentHandler.setDocumentSource(fDTDValidator); - fLastComponent = fDTDValidator; - } - else { - fScanner = fNonNSScanner; - fProperties.put(DTD_VALIDATOR, fNonNSDTDValidator); - fProperties.put(DOCUMENT_SCANNER, fNonNSScanner); - fNonNSScanner.setDocumentHandler(fNonNSDTDValidator); - fNonNSDTDValidator.setDocumentSource(fNonNSScanner); - fNonNSDTDValidator.setDocumentHandler(fDocumentHandler); - fDocumentHandler.setDocumentSource(fNonNSDTDValidator); - fLastComponent = fNonNSDTDValidator; - } + protected void configurePipeline() { + // setup dtd pipeline + if (fDTDScanner != null) { + if (fDTDProcessor != null) { + fDTDScanner.setDTDHandler(fDTDProcessor); + fDTDProcessor.setDTDHandler(fDTDHandler); + fDTDScanner.setDTDContentModelHandler(fDTDProcessor); + fDTDProcessor.setDTDContentModelHandler(fDTDContentModelHandler); + } + else { + fDTDScanner.setDTDHandler(fDTDHandler); + fDTDScanner.setDTDContentModelHandler(fDTDContentModelHandler); + } + } + + if (fFeatures.get(NAMESPACES) == Boolean.TRUE) { + fScanner = fNamespaceScanner; + fProperties.put(DTD_VALIDATOR, fDTDValidator); + fProperties.put(DOCUMENT_SCANNER, fNamespaceScanner); + fNamespaceScanner.setDTDValidator(fDTDValidator); + fNamespaceScanner.setDocumentHandler(fDTDValidator); + fDTDValidator.setDocumentSource(fNamespaceScanner); + fDTDValidator.setDocumentHandler(fDocumentHandler); + fDocumentHandler.setDocumentSource(fDTDValidator); + fLastComponent = fDTDValidator; + } + else { + fScanner = fNonNSScanner; + fProperties.put(DTD_VALIDATOR, fNonNSDTDValidator); + fProperties.put(DOCUMENT_SCANNER, fNonNSScanner); + fNonNSScanner.setDocumentHandler(fNonNSDTDValidator); + fNonNSDTDValidator.setDocumentSource(fNonNSScanner); + fNonNSDTDValidator.setDocumentHandler(fDocumentHandler); + fDocumentHandler.setDocumentSource(fNonNSDTDValidator); + fLastComponent = fNonNSDTDValidator; + } + + // setup document pipeline + if (fFeatures.get(XMLSCHEMA_VALIDATION) == Boolean.TRUE) { + // If schema validator was not in the pipeline insert it. + if (fSchemaValidator == null) { + fSchemaValidator = new XMLSchemaValidator(); + + // add schema component + fProperties.put(SCHEMA_VALIDATOR, fSchemaValidator); + addComponent(fSchemaValidator); + // add schema message formatter + if (fErrorReporter.getMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN) == null) { + XSMessageFormatter xmft = new XSMessageFormatter(); + fErrorReporter.putMessageFormatter(XSMessageFormatter.SCHEMA_DOMAIN, xmft); + } + + } + + fLastComponent.setDocumentHandler(fSchemaValidator); + fSchemaValidator.setDocumentSource(fLastComponent); + fSchemaValidator.setDocumentHandler(fDocumentHandler); + fLastComponent = fSchemaValidator; - } - - } // configurePipeline() + } + } // configurePipeline()
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]