Help | Site Map
Connecting Tech Pros Worldwide
 
 
LinkBack Thread Tools
  #1  
Old December 14th, 2006, 10:28 PM
gregmcmullinjr@gmail.com
Guest
 
Posts: n/a
Default DTD or Schema -- Ignore Undefined Tags

I am wondering if there is a way to use a DTD or Schema to instruct an
XML parser to ignore tags that are not defined.

That is, if my list of acceptable tags is <bodyand <content>, then in
the following example:

<body>
We may have some text <b>and some <u>other tags</u></b>
<contentbut I want the text and undefined tags to be part of the
text-node
of the body tag.
</content>
</body>

So the tree would be like:
<body>
#Text
<content>
#Text
</content>
</body>

I want the first text node to contain "We may have some text <b>and
some <u>other tags</u></b>"

Is there some way of doing this with Schemas or DTDs? Or perhaps using
a stylesheet?

Using a stylesheet I would need to do find a way of matching all tags
that arent in a certain list and then re-writing them with $lt;
entities I suppose, but I'm really not sure what the best way to do
this is.

Any help is appreciated,

Greg

  #2  
Old December 14th, 2006, 10:28 PM
Joseph Kesselman
Guest
 
Posts: n/a
Default Re: DTD or Schema -- Ignore Undefined Tags

gregmcmullinjr@gmail.com wrote:
Quote:
Using a stylesheet I would need to do find a way of matching all tags
that arent in a certain list and then re-writing them with $lt;
entities I suppose
Not a good solution. Elements are semantically meaningful; &lt;foo&gt;
is NOT the same thing as <foo>.

If you're working with schemas, you can use xsd:any with lax validation
to indicate that the contents of certain elements should be accepted
even if not valid.

Another alternative, of course, is to insist only on well-formed
documents and not attempt to validate them.

--
Joe Kesselman / Beware the fury of a patient man. -- John Dryden
  #3  
Old December 14th, 2006, 10:28 PM
Peter Flynn
Guest
 
Posts: n/a
Default Re: DTD or Schema -- Ignore Undefined Tags

gregmcmullinjr@gmail.com wrote:
Quote:
I am wondering if there is a way to use a DTD or Schema to instruct an
XML parser to ignore tags that are not defined.
No.A schema or DTD is for doing exactly the reverse: enforcing the use
only of elements that have been declared.

BTW elements, not "tags": see http://xml.silmaril.ie/authors/makeup/
Quote:
That is, if my list of acceptable tags is <bodyand <content>, then in
the following example:
>
<body>
We may have some text <b>and some <u>other tags</u></b>
<contentbut I want the text and undefined tags to be part of the
text-node
of the body tag.
</content>
</body>
>
So the tree would be like:
<body>
#Text
<content>
#Text
</content>
</body>
If you want to do this, process the XML in non-validated mode, just
well-formed but with no DTD or schema.
Quote:
I want the first text node to contain "We may have some text <b>and
some <u>other tags</u></b>"
>
Is there some way of doing this with Schemas or DTDs? Or perhaps using
a stylesheet?
XSLT is your friend.
Quote:
Using a stylesheet I would need to do find a way of matching all tags
that arent in a certain list and then re-writing them with $lt;
entities I suppose, but I'm really not sure what the best way to do
this is.
Whoah! This is a different question entirely. Are you implying that you
still want to *keep* the otherwise unrecognised element markup? Your
example above implied that you wanted to discard it.

You definitely don't want to fiddle with making them all &lt;...&gt; --
that way madness lies. See http://xml.silmaril.ie/authors/html/

///Peter
--
XML FAQ: http://xml.silmaril.ie/
 

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are Off
[IMG] code is Off
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On

What is Bytes?

We are a network of experts and professionals in IT and software development that help one another with answers to tough questions and share insights. Get the best answers to your questions from over network members.
Post your question now . . .
It's fast and it's free

Popular Articles