add CDATA element to an xml schema?

X

X. Lee

I am creating an xml schema, and I want one of the elements to include
html text. Therefore, I want to make that element a CDATA elements so
that it can accept html tags as part of it's value. I'm having
trouble doing this though. Can anyone give me a sample of how to do
that?

so if this is my xml instance:

<root>
<element><!CDATA[something]]></element>
</root>

how would I create an xml schema so that my instance is valid against
that schema?
 
R

Richard Tobin

X. Lee said:
<root>
<element><!CDATA[something]]></element>
</root>
how would I create an xml schema so that my instance is valid against
that schema?

CDATA sections are just a mechanism for escaping character data, so
as far as the schema is concerned it's no different from an element
containing ordinary text.

There's no way to *require* that the user use a CDATA section.

-- Richard
 
P

Peter Flynn

X. Lee said:
I am creating an xml schema, and I want one of the elements to include
html text.

You mean HTML markup? In general, this is A Bad Idea. If the markup is
important, represent it in the schema. If it's not, remove it.
Therefore, I want to make that element a CDATA elements so
that it can accept html tags as part of it's value. I'm having
trouble doing this though. Can anyone give me a sample of how to do
that?

You can't do this in XML. If you want to declare CDATA content you have
to use SGML instead, eg

<!element foo - - CDATA>

but even so most SGML parsers will reject any attempt to use an end-tag
inside the element.
so if this is my xml instance:

<root>
<element><!CDATA[something]]></element>
</root>

how would I create an xml schema so that my instance is valid against
that schema?

Doing it that way (with a manually-inserted CDATA Marked Section) is fine
(except you're missing an open-square bracket before the keyword CDATA).
The instance will always be valid, because the parser will suspend the
recognition of < and & until it encounters ]]>.

///Peter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,048
Latest member
verona

Latest Threads

Top