[erlang-questions] Re: xmerl namespace handling

Robert Raschke rtrlists@REDACTED
Mon Aug 3 13:41:31 CEST 2009

On Mon, Aug 3, 2009 at 12:11 PM, Dave Pawson <dave.pawson@REDACTED> wrote:

> 2009/8/3 Robert Raschke <rtrlists@REDACTED>:
> > Hmm replying to myself, sorry 'bout that.
> > I figured out that namespaces are kept as atoms in the xmlNamespace
> record
> > and the 'default' field of that record has a default value of []. So if I
> > change the first clause of mk_Ell_namespace/3 to read like follows, I can
> > get my XML validated:
> Differentiate between default namespace and null namespace?
> http://www.w3.org/TR/xml-names/#defaulting
> An element without a namespace inherits from it's nearest ancestor
> specifying a namespace
> http://www.w3.org/TR/REC-xml-names/#scoping
Yeah, my case is the following:

I have XML:

<n:a xmlns:n="foo">
        <c xmlns="bar">

And I have an XSD with a targetNamespace of "bar" for the tree rooted in <c>

I want to check the tree starting with element <c> against my XSD. In the
current xmerl I can't do that, since it appears to check the parents
namespaces before the default on the node. So, after selecting the <c>
element, I get an error like

     {c,[],foo}, ...

Thus <c> has received the namespace of its parent by the processing in
xmerl_xsd, instead of its own default namespace!


More information about the erlang-questions mailing list