Namespace prefix definitions (xmlns:prefix="uri" attributes) are not
accessible from XSLT (and probably from anything else that tries to hide the
details of namespacing from you) which means that it is not possible to
resolve qualifed name references to types, for example, in those
environments. I'd suggest adding an explicit schemaPrefix attribute to the
import and targetPrefix attribute to the schema element. At least, this
information could be used as decoration in the documentation. I am able to
work around this using equivalent attributes from another namespace, but it
seems like a general problem.
Of course, any implementation has to have some limit on the depth of nested
includes.
A complicated issue is nested imports. It should be moderately common for
multiple imports to in turn import some common namespace but possibly from
different resources. Trying to resolve the potential conflicts seemed
untenable.
How I've currently addressed it in my preprocessor is that only imports that
in the schema being compiled add information to the validation package. If
an import appears in an include or import and its namespace didn't have an
import in the schema being compiled, an informative message is issued (but
which might result in some unsatisfied references).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Apparently, namespace prefixes are available from XSLT in the deceptively named namespace nodes. Thanks to James Clark for my enlightenment. My working version (later than 0.0.1) no longer requires xsc:prefix attributes.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Namespace prefix definitions (xmlns:prefix="uri" attributes) are not
accessible from XSLT (and probably from anything else that tries to hide the
details of namespacing from you) which means that it is not possible to
resolve qualifed name references to types, for example, in those
environments. I'd suggest adding an explicit schemaPrefix attribute to the
import and targetPrefix attribute to the schema element. At least, this
information could be used as decoration in the documentation. I am able to
work around this using equivalent attributes from another namespace, but it
seems like a general problem.
Of course, any implementation has to have some limit on the depth of nested
includes.
A complicated issue is nested imports. It should be moderately common for
multiple imports to in turn import some common namespace but possibly from
different resources. Trying to resolve the potential conflicts seemed
untenable.
How I've currently addressed it in my preprocessor is that only imports that
in the schema being compiled add information to the validation package. If
an import appears in an include or import and its namespace didn't have an
import in the schema being compiled, an informative message is issued (but
which might result in some unsatisfied references).
Apparently, namespace prefixes are available from XSLT in the deceptively named namespace nodes. Thanks to James Clark for my enlightenment. My working version (later than 0.0.1) no longer requires xsc:prefix attributes.