Thanks Mike,
Quite comprehensive.
On 27/03/13 22:54, Michael Kay wrote:
In general, extracting information from schema documents using XSLT is
difficult, unless you are prepared to make assumptions and
approximations - for example, you might be prepared to ignore the impact
of xs:redefine, or the risk of finding xs:element declarations within an
xs:documentation element.
In this case I think you can get a reasonable answer fairly easily. If
you find an <xs:element name="N"> then the namespace in question is one
of the following:
(a) if parent::xs:schema then ../@targetNamespace if present, else ""
(b) otherwise, if normalize-space(@form)="qualified" or empty(@form) and
normalize-space(ancestor::xs:schema/@elementFormDefault)="qualified",
then ancestor::xs:schema/@targetNamespace if present, else ""
(c) otherwise, ""
I think this caters for most possibilities; an exception is chameleon
include where the declarations in a schema document acquire the target
namespace of the including schema document.
I know the chameleon 'method' is used, but am prepared to accept
problems from that. Since I'm file based I have no option (other than
to assume the 'parent' including file targetNamespace.
Also that redefine isn't used.
Thanks.
regards
--
Dave Pawson
XSLT XSL-FO FAQ.
http://www.dpawson.co.uk
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--