Re: [xml-dev] how to use xml:base and relative URLs with SAX/Java?

From
Anil Philip <>
To
Date
2005-12-10T17:15:46Z
ID
<>
Thread
Re: [xml-dev] how to use xml:base and relative URLs with SAX/Java?
1) Thank you for replying. I tried your fix - it
doesnt work.
The problem is not with the faulty url (it treats it
as a string so spaces are ok - actually I have fixed
the url in other data).
I am opening the schema file in XML Spy and also the
xml file.
When I make the modification and try to Save, I get
the validation error again. So the problem is *not* at
runtime.
2) I wanted to use XML base because some of the clips
may be stored locally but others may be on a server.
thanks,
Anil



--- Liam Quin <> wrote:

> On Fri, Dec 09, 2005 at 08:34:42PM -0800, Anil
> Philip wrote:
> > In the xml schema, I have defined:
> > <xs:element name="audioClip" type="xs:anyURI"/>
> 
> So, your audioClip elmeent's contents must be a URI
> (or IRI).
> 
> > <audioClip xml:base = "My Music\Sample Music\"
> > xlink:href = "Highway Blues.wma" xlink:type =
> "simple"
> > xmlns:xlink="http://www.w3.org/1999/xlink" />
> 
> Some of your slashes go the wrong way and you have
> tried to
> put a space an a URI.
> 
> Try:
> 
> <audioClip xml:base =
> "file:///C|/My%20Music/Sample%20Music/"
>   xlink:href="Highway%20Blues.wma"
> xlink:type="simple"
>   xmlns:xlink="http://www.w3.org/1999/xlink" />
> 
> > 1. However, I get validation error: "Element
> audioClip
> > is based on a simple type. Attribute 'xml:base' is
> not
> > defined in the schema instance namespace (xsi)."
> 
> The idea of xml:base is really to say where an
> entity (e.g
> a file) come from.  You can use it on individual
> elements, but
> you might as well just use
>     href="file:...."
> instead as far as I can tell.
> 
> In general, though, it's better to use relative uRIs
> if you
> want your document to be portable.
> 
> > 2. Also how would I access the URL from my code
> during
> > SAX parsing? as an attribute of the
> > audioClip? atts.getValue("", "base");
> 
> I don't know if the SAX processor you are using has
> any special
> support for xml:base, but if it does, no, there
> would be a call
> to get the current base, since it is inherited.  If
> not, you
> would have to keep a stack of the xml:base property
> for each
> element, defaulting to the URI of the containing
> resource (file).
> 
> Liam
> 
> -- 
> Liam Quin, W3C XML Activity Lead,
> http://www.w3.org/People/Quin/
> http://www.holoweb.net/~liam/
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com