mbeckerle opened a new issue, #653:
URL: https://github.com/apache/daffodil-vscode/issues/653
At Owl we have DFDL schemas made of numerous schema components, where the
starting root element of the schema isn't even part of the schema, it's part of
a component schema that is in a jar on the classpath.
This happens when you have the very common envelope-payload idiom. There is
a separate schema for the envelope (or header), and a separate schema for the
payload.
A third _**assembly schema**_ that combines the envelope and payload
together contains only the small glue part that connects the two together. It
also contains tests of the assembly schema. For example it defines an
undefined part of the envelope schema to contain an instance of the payload
schema.
The root element for parsing/unparsing is the envelope's root element, and
that schema is in a jar file. That root element isn't part of the assembly
schema at all.
I did not see any feature in launch.json for specifying the name/namespace
of the root element. There is just the "program" element, which must be to a
file in the current schema.
The Daffodil library API allows you to specify a root element, and
optionally a namespace URI for it. If the root element name is unambiguous the
namespace URI is optional. If neither is provided then the primary schema
file's first element declaration is assumed to be the root element.
Right now the VSCode extension is assuming this heuristic is the only way a
root element can be specified.
The root needs to be able to be specified just as element name + optional
namespace, where the DFDL schema for that root element name and namespace must
be found on the daffodilDebugClasspath.
The primary DFDL Schema file that contains that element must be able to be a
file in a jar on the daffodilDebugClasspath.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]