468,247 Members | 1,276 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 468,247 developers. It's quick & easy.

Allowing specific elements from another namespace...

I have a document type which I'm developing and working with, which is
currently defined in a DTD, mainly because I still haven't really
learned to use schemas. In this document type I need to specify that
some specific elements may have children which are XHTML %Flow;
elements. It isn't valid for these elements to contain arbitrary
XHTML, and it isn't valid for other elements in my language to have
any XHTML children.

I presume I can't do this in a DTD (except by including the XHTML DTD
into mine, which would mean that I would end up with the whole of
XHTML in my namespace, which isn't what I want). But how would I go
about doing it in a schema?
Jun 27 '08 #1
2 1389
Simon Brooke wrote:
I have a document type which I'm developing and working with, which is
currently defined in a DTD, mainly because I still haven't really
learned to use schemas. In this document type I need to specify that
some specific elements may have children which are XHTML %Flow;
elements. It isn't valid for these elements to contain arbitrary
XHTML, and it isn't valid for other elements in my language to have
any XHTML children.

I presume I can't do this in a DTD (except by including the XHTML DTD
into mine, which would mean that I would end up with the whole of
XHTML in my namespace, which isn't what I want). But how would I go
about doing it in a schema?
The W3C XML schema language has an xs:any element where you can specify
a namespace so you can allow any element in the XHTML namespace. You
can't specify a certain type however so I don't know how you could
restrict the element children to be of type flow. It might be best to
import a schema for XHTML and then allow an XHTML div element as the
child e.g.
<xs:element ref="xhtml:div"/>
that way you can then have the other elements inside the div element.

--

Martin Honnen
http://JavaScript.FAQTs.com/
Jun 27 '08 #2
I presume I can't do this in a DTD

DTDs are not namespace aware. You could allow specific elements with a
particular prefix, and try to set up required/default declarations for
that prefix to be the intended namespace... but in general if you're
using namespaces (and these days you should be), you should move to XML
Schema and handle them properly.

In schemas, allowing specific elements in another namespace should be
straightforward: you should be able to bind a prefix to that namespace
and use the appropriate prefixed QNames in your schema's description of
legal contents just as you would reference elements within the same
namespace. There should be examples of this on the web in various schema
tutorials; I haven't gone hunting for one recently so I don't have a
good pointer to give you other than the Schema recommendation (which is
not easy reading).

Jun 27 '08 #3

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

12 posts views Thread by Lawrence Oluyede | last post: by
1 post views Thread by cmrchs | last post: by
22 posts views Thread by spam.noam | last post: by
22 posts views Thread by Christopher Nelson | last post: by
reply views Thread by NPC403 | last post: by
reply views Thread by zattat | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.