[ 
https://issues.apache.org/jira/browse/DAFFODIL-2339?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Steve Lawrence updated DAFFODIL-2339:
-------------------------------------
    Fix Version/s:     (was: 3.0.0)

> CLI Test fails if xsi:schemaLocation added to config.xml file.
> --------------------------------------------------------------
>
>                 Key: DAFFODIL-2339
>                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2339
>             Project: Daffodil
>          Issue Type: Bug
>          Components: CLI
>    Affects Versions: 2.6.0
>            Reporter: Mike Beckerle
>            Priority: Major
>
> For CLI test_3507_CLI_Parsing_SimpleParse_SaveParser_extVars
> This specifies a config file on the command line via the path
> daffodil-test/src/test/resources/org/apache/daffodil/section07/external_variables/daffodil_config_cli_test.xml
> This file contains
> {code}
> <daf:dfdlConfig 
> xmlns:daf="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:ext">
>       <daf:externalVariableBindings xmlns="http://www.w3.org/2001/XMLSchema";
>               xmlns:ex="http://example.com";>
>               <daf:bind name="ex:var1">-9</daf:bind>
>               <daf:bind name="ex:var3">-8</daf:bind>
>       </daf:externalVariableBindings>
> </daf:dfdlConfig>
> {code}
> It would be valuable to add xsi:schemaLocation to this so as to specify where 
> the
> daf namespace schema is defined like so:
> {code}
> <daf:dfdlConfig xmlns:daf="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:ext"
>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>     xsi:schemaLocation="urn:ogf:dfdl:2013:imp:daffodil.apache.org:2018:ext 
> org/apache/daffodil/xsd/dafext.xsd">
>       <daf:externalVariableBindings xmlns="http://www.w3.org/2001/XMLSchema";
>               xmlns:ex="http://example.com";>
>               <daf:bind name="ex:var1">-9</daf:bind>
>               <daf:bind name="ex:var3">-8</daf:bind>
>       </daf:externalVariableBindings>
> </daf:dfdlConfig>
> {code}
> Unfortunately, that causes a failure:
> {code}
> /home/mbeckerle/dataiti/git/daffodil/daffodil-cli/target/universal/stage/bin/daffodil
>  -v save-parser -s 
> /home/mbeckerle/dataiti/git/daffodil/daffodil-test/src/test/resources/org/apache/daffodil/section07/external_variables/external_variables.dfdl.xsd
>  -r row -c 
> /home/mbeckerle/dataiti/git/daffodil/daffodil-test/src/test/resources/org/apache/daffodil/section07/external_variables/daffodil_config_cli_test.xml
>  test_3507.xsd.bin
> [info] Unable to resolve 
> file:/home/mbeckerle/dataiti/git/daffodil/daffodil-test/src/test/resources/org/apache/daffodil/section07/external_variables/org/apache/daffodil/xsd/dafext.xsd
>  in 
> Some(file:/home/mbeckerle/dataiti/git/daffodil/daffodil-test/src/test/resources/org/apache/daffodil/section07/external_variables/daffodil_config_cli_test.xml)
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> !!   An unexpected exception occurred. This is a bug!   !!
> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>  Please report this bug and help us fix it:
>   https://daffodil.apache.org/community/#issue-tracker
>  Please include the following exception, the command you
>  ran, and any input, schema, or tdml files used that led
>  to this bug.
> org.xml.sax.SAXParseException; systemId: 
> file:/home/mbeckerle/dataiti/git/daffodil/daffodil-test/src/test/resources/org/apache/daffodil/section07/external_variables/daffodil_config_cli_test.xml;
>  lineNumber: 21; columnNumber: 110; schema_reference.4: Failed to read schema 
> document 
> 'file:/home/mbeckerle/dataiti/git/daffodil/daffodil-test/src/test/resources/org/apache/daffodil/section07/external_variables/org/apache/daffodil/xsd/dafext.xsd',
>  because 1) could not find the document; 2) the document could not be read; 
> 3) the root element of the document is not <xsd:schema>.
>       at 
> org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown 
> Source)
>       at org.apache.xerces.util.ErrorHandlerWrapper.warning(Unknown Source)
>       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
>       at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
>       at 
> org.apache.xerces.impl.xs.traversers.XSDHandler.reportSchemaWarning(Unknown 
> Source)
>       at 
> org.apache.xerces.impl.xs.traversers.XSDHandler.getSchemaDocument1(Unknown 
> Source)
>       at 
> org.apache.xerces.impl.xs.traversers.XSDHandler.getSchemaDocument(Unknown 
> Source)
>       at org.apache.xerces.impl.xs.traversers.XSDHandler.parseSchema(Unknown 
> Source)
>       at org.apache.xerces.impl.xs.XMLSchemaLoader.loadSchema(Unknown Source)
>       at 
> org.apache.xerces.impl.xs.XMLSchemaValidator.findSchemaGrammar(Unknown Source)
>       at 
> org.apache.xerces.impl.xs.XMLSchemaValidator.handleStartElement(Unknown 
> Source)
>       at org.apache.xerces.impl.xs.XMLSchemaValidator.startElement(Unknown 
> Source)
>       at 
> org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown 
> Source)
>       at 
> org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
>  Source)
>       at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
>  Source)
>       at 
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown 
> Source)
>       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>       at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
>       at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
>       at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
>       at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown 
> Source)
>       at 
> org.apache.daffodil.xml.DFDLXercesAdapter.loadXML(DaffodilXMLLoader.scala:400)
>       at scala.xml.factory.XMLLoader.load(XMLLoader.scala:56)
>       at scala.xml.factory.XMLLoader.load$(XMLLoader.scala:56)
>       at scala.xml.parsing.FactoryAdapter.load(FactoryAdapter.scala:38)
>       at 
> org.apache.daffodil.xml.DaffodilXMLLoader.load(DaffodilXMLLoader.scala:562)
>       at 
> org.apache.daffodil.configuration.ConfigurationLoader$.getConfiguration(ConfigurationLoader.scala:43)
>       at 
> org.apache.daffodil.configuration.ConfigurationLoader$.getConfiguration(ConfigurationLoader.scala:50)
>       at org.apache.daffodil.Main$.loadConfigurationFile(Main.scala:589)
>       at org.apache.daffodil.Main$.run(Main.scala:1181)
>       at org.apache.daffodil.Main$.main(Main.scala:1379)
> {code}
> Simple things like adding an sbt dependency from daffodil-cli back to 
> daffodil-lib, whether always or "it->test"  dependent, don't fix this.
> The CLI is using DaffodilXMLLoader to load this config file, so the resolver 
> should be doing the right thing by finding this dafext.xsd on the class path 
> inside of daffodil-lib's jar.
>  
> It seems to be erroring out because it is failing upon constructing and not 
> finding the relative path, that is the path creating by concatenating this 
> file's URL with the org/apache/daffodil/xsd/dafext.xsd. That should not be 
> found, but it should then not fail, but go search the class path for the 
> org/apache/daffodil/xsd/dafext.xsd.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to