[Home] [By Thread] [By Date] [Recent Entries]


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/

Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member