xhtml in xml element

W

Wole Ogunremi

I guess this is a well asked question but it is tripping me up!

I'm putting a forum together allowing xhtml markup content. I am validating
against a schema but getting "Could not find schema information for element
<elementName>...

I would appreciate if anyone could advice where I am going wrong. TIA

Here's my xsd:

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="Topics" targetNamespace="http://www.test.com/Topics.xsd"
elementFormDefault="qualified"
xmlns:tes="http://www.test.com/Topics.xsd"
xmlns="http://www.test.com/Topics.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ForumTopic">
<xs:complexType>
<xs:sequence>
<xs:element name="TopicID" type="xs:ID" minOccurs="1" maxOccurs="1" />
<xs:element name="MainThread" type="tes:Thread" minOccurs="1"
maxOccurs="1" />
<xs:choice>
<xs:element name="SubThreads" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="ReceivingReplys" type="xs:boolean" />
<xs:element name="SubThread" minOccurs="0" maxOccurs="unbounded"
type="tes:Thread" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="IsLockedThread" type="xs:boolean" fixed="true" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="OnDateTime">
<xs:sequence>
<xs:element name="OnDate" type="xs:date" minOccurs="1" maxOccurs="1" />
<xs:element name="AtTime" type="xs:time" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Thread">
<xs:sequence>
<xs:element name="ThreadID" type="xs:ID" minOccurs="1" maxOccurs="1" />
<xs:element name="AuthorID" type="xs:string" minOccurs="1" maxOccurs="1"
/>
<xs:element name="Created" type="OnDateTime" minOccurs="1" maxOccurs="1"
/>
<xs:element name="Modified" type="OnDateTime" minOccurs="0" maxOccurs="1"
/>
<xs:element name="Subject" type="xs:string" minOccurs="1" maxOccurs="1"
/>
<xs:element name="Content" maxOccurs="1" minOccurs="1">
<xs:complexType mixed="true">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="http://www.w3.org/1999/xhtml" processContents="lax" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ParentThreadID" type="xs:string" use="required" />
</xs:complexType>
</xs:schema>


And here is my xml

<?xml version="1.0" encoding="utf-8" ?>
<tes:ForumTopic xmlns:tes="http://www.test.com/Topics.xsd"
xmlns:xh="http://www.w3.org/1999/xhtml">
<tes:TopicID>topic2</tes:TopicID>
<tes:MainThread ParentThreadID="topic2">
<tes:ThreadID>thrd1</tes:ThreadID>
<tes:AuthorID>wolex</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-08</tes:OnDate>
<tes:AtTime>10:14:21</tes:AtTime>
</tes:Created>
<tes:Subject>Test post</tes:Subject>
<tes:Content>
<xh:p>Par<xh:b>agr</xh:b>aph 1</xh:p>
<xh:p>Paragraph 2</xh:p>
<xh:p>Paragraph 3</xh:p>
</tes:Content>
</tes:MainThread>
<tes:SubThreads>
<tes:ReceivingReplys>true</tes:ReceivingReplys>
<tes:SubThread ParentThreadID="thrd1">
<tes:ThreadID>thrd2</tes:ThreadID>
<tes:AuthorID>wolex</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-08</tes:OnDate>
<tes:AtTime>10:19:32</tes:AtTime>
</tes:Created>
<tes:Subject>Your post makes no sense</tes:Subject>
<tes:Content>
<xh:p>Paragraph 1 is not right.</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd2">
<tes:ThreadID>thrd3</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:17:09</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p><xh:b>Police searches</xh:b></xh:p>
<xh:p>"We want justice done. Some one killed him and that person has to
be locked up." </xh:p>
<xh:p>Mr Taylor said he still found the loss of his son "difficult to
cope with". </xh:p>
<xh:p>Police said in October they had searched several Peckham homes the
previous month. </xh:p>
<xh:p>At the time Scotland Yard said it was confident the case would be
solved. </xh:p>
<xh:p>Mr Taylor said he hopes to pass on positive lessons learned from
his son's death to young people in London and to raise awareness among
children of the danger of carrying weapons. </xh:p>
<xh:p>However, he urged parents to take a stronger role in looking after
their children. </xh:p>
<xh:p>"From leaving home in the morning to when he comes back in the
evening because what the child does outside - [parents are] oblivious to
it," he said. </xh:p>
<xh:p>Dean of Southwark Colin Slee said police had done a lot of work in
the Peckham to improve safety. </xh:p>
<xh:p>"I think children feel safe when they are in school, both primary
and secondary, but it's when they are on the streets that there's a
difficulty." </xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd3">
<tes:ThreadID>thrd4</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:31:36</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p xmlns="">Differences Between HTML and XHTML<xh:br />
The &lt;blockquote&gt; tag is supposed to contain only block-level elements
within it, and not just plain text.</xh:p>
<xh:p xmlns="">To validate the page as strict XHTML, you must add a
block-level element around the text within the &lt;blockquote&gt; tag, like
this:</xh:p>
<xh:p xmlns="">&lt;blockquote&gt;<xh:br />
&lt;p&gt;here is a long quotation here is a long quotation&lt;/p&gt;<xh:br
/>
&lt;/blockquote&gt;</xh:p>
<xh:p xmlns="">
</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd4">
<tes:ThreadID>thrd5</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:43:50</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p xmlns="">
<xh:b>Parental problems</xh:b>
</xh:p>
<xh:p xmlns="">He too was confident the killer would be caught as
the "gap" between police and the community was changing for the better.
</xh:p>
<xh:p xmlns="">"I think ultimately the killers will be found."
</xh:p>
<xh:p xmlns="">He said the role of parents was the most important
aspect. </xh:p>
<xh:p xmlns="">"All of the head teachers that I speak to say that
they are fairly content with the security of the children in school and not
content with the way parents are behaving." </xh:p>
<xh:p xmlns="">He said children "are kicked out in the morning and
told to go to school by themselves in street that are quite dark", children
frequently return home to empty houses, or wander the streets, often in
groups "purely because they are bored".</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd5">
<tes:ThreadID>thrd6</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:46:11</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p xmlns="">
<xh:b>Parental problems</xh:b>
</xh:p>
<xh:p xmlns="">He too was confident the killer would be caught as
the "gap" between police and the community was changing for the better.
</xh:p>
<xh:p xmlns="">"I think ultimately the killers will be found."
</xh:p>
<xh:p xmlns="">He said the role of parents was the most important
aspect. </xh:p>
<xh:p xmlns="">"All of the head teachers that I speak to say that
they are fairly content with the security of the children in school and not
content with the way parents are behaving." </xh:p>
<xh:p xmlns="">He said children "are kicked out in the morning and
told to go to school by themselves in street that are quite dark", children
frequently return home to empty houses, or wander the streets, often in
groups "purely because they are bored".</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd5">
<tes:ThreadID>thrd6</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>15:12:06</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p>
<xh:img
src="http://newsimg.bbc.co.uk/media/images/40566000/jpg/_40566183_india_also66.jpg"
wole="4" />
</xh:p>
</tes:Content>
</tes:SubThread>
</tes:SubThreads>
</tes:ForumTopic>
 
W

Wole Ogunremi

May I just add that I am only having problems with the xhtml elements inside
the Content node. Thanks.

Wole Ogunremi said:
I guess this is a well asked question but it is tripping me up!

I'm putting a forum together allowing xhtml markup content. I am
validating
against a schema but getting "Could not find schema information for
element
<elementName>...

I would appreciate if anyone could advice where I am going wrong. TIA

Here's my xsd:

<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="Topics" targetNamespace="http://www.test.com/Topics.xsd"
elementFormDefault="qualified"
xmlns:tes="http://www.test.com/Topics.xsd"
xmlns="http://www.test.com/Topics.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ForumTopic">
<xs:complexType>
<xs:sequence>
<xs:element name="TopicID" type="xs:ID" minOccurs="1" maxOccurs="1" />
<xs:element name="MainThread" type="tes:Thread" minOccurs="1"
maxOccurs="1" />
<xs:choice>
<xs:element name="SubThreads" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="ReceivingReplys" type="xs:boolean" />
<xs:element name="SubThread" minOccurs="0" maxOccurs="unbounded"
type="tes:Thread" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="IsLockedThread" type="xs:boolean" fixed="true" />
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="OnDateTime">
<xs:sequence>
<xs:element name="OnDate" type="xs:date" minOccurs="1" maxOccurs="1" />
<xs:element name="AtTime" type="xs:time" minOccurs="1" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="Thread">
<xs:sequence>
<xs:element name="ThreadID" type="xs:ID" minOccurs="1" maxOccurs="1" />
<xs:element name="AuthorID" type="xs:string" minOccurs="1" maxOccurs="1"
/>
<xs:element name="Created" type="OnDateTime" minOccurs="1" maxOccurs="1"
/>
<xs:element name="Modified" type="OnDateTime" minOccurs="0"
maxOccurs="1"
/>
<xs:element name="Subject" type="xs:string" minOccurs="1" maxOccurs="1"
/>
<xs:element name="Content" maxOccurs="1" minOccurs="1">
<xs:complexType mixed="true">
<xs:sequence>
<xs:any maxOccurs="unbounded" minOccurs="0"
namespace="http://www.w3.org/1999/xhtml" processContents="lax" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ParentThreadID" type="xs:string" use="required" />
</xs:complexType>
</xs:schema>


And here is my xml

<?xml version="1.0" encoding="utf-8" ?>
<tes:ForumTopic xmlns:tes="http://www.test.com/Topics.xsd"
xmlns:xh="http://www.w3.org/1999/xhtml">
<tes:TopicID>topic2</tes:TopicID>
<tes:MainThread ParentThreadID="topic2">
<tes:ThreadID>thrd1</tes:ThreadID>
<tes:AuthorID>wolex</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-08</tes:OnDate>
<tes:AtTime>10:14:21</tes:AtTime>
</tes:Created>
<tes:Subject>Test post</tes:Subject>
<tes:Content>
<xh:p>Par<xh:b>agr</xh:b>aph 1</xh:p>
<xh:p>Paragraph 2</xh:p>
<xh:p>Paragraph 3</xh:p>
</tes:Content>
</tes:MainThread>
<tes:SubThreads>
<tes:ReceivingReplys>true</tes:ReceivingReplys>
<tes:SubThread ParentThreadID="thrd1">
<tes:ThreadID>thrd2</tes:ThreadID>
<tes:AuthorID>wolex</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-08</tes:OnDate>
<tes:AtTime>10:19:32</tes:AtTime>
</tes:Created>
<tes:Subject>Your post makes no sense</tes:Subject>
<tes:Content>
<xh:p>Paragraph 1 is not right.</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd2">
<tes:ThreadID>thrd3</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:17:09</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p><xh:b>Police searches</xh:b></xh:p>
<xh:p>"We want justice done. Some one killed him and that person has to
be locked up." </xh:p>
<xh:p>Mr Taylor said he still found the loss of his son "difficult to
cope with". </xh:p>
<xh:p>Police said in October they had searched several Peckham homes the
previous month. </xh:p>
<xh:p>At the time Scotland Yard said it was confident the case would be
solved. </xh:p>
<xh:p>Mr Taylor said he hopes to pass on positive lessons learned from
his son's death to young people in London and to raise awareness among
children of the danger of carrying weapons. </xh:p>
<xh:p>However, he urged parents to take a stronger role in looking after
their children. </xh:p>
<xh:p>"From leaving home in the morning to when he comes back in the
evening because what the child does outside - [parents are] oblivious to
it," he said. </xh:p>
<xh:p>Dean of Southwark Colin Slee said police had done a lot of work in
the Peckham to improve safety. </xh:p>
<xh:p>"I think children feel safe when they are in school, both primary
and secondary, but it's when they are on the streets that there's a
difficulty." </xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd3">
<tes:ThreadID>thrd4</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:31:36</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p xmlns="">Differences Between HTML and XHTML<xh:br />
The &lt;blockquote&gt; tag is supposed to contain only block-level
elements
within it, and not just plain text.</xh:p>
<xh:p xmlns="">To validate the page as strict XHTML, you must add a
block-level element around the text within the &lt;blockquote&gt; tag,
like
this:</xh:p>
<xh:p xmlns="">&lt;blockquote&gt;<xh:br />
&lt;p&gt;here is a long quotation here is a long quotation&lt;/p&gt;<xh:br
/>
&lt;/blockquote&gt;</xh:p>
<xh:p xmlns="">
</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd4">
<tes:ThreadID>thrd5</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:43:50</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p xmlns="">
<xh:b>Parental problems</xh:b>
</xh:p>
<xh:p xmlns="">He too was confident the killer would be caught as
the "gap" between police and the community was changing for the better.
</xh:p>
<xh:p xmlns="">"I think ultimately the killers will be found."
</xh:p>
<xh:p xmlns="">He said the role of parents was the most important
aspect. </xh:p>
<xh:p xmlns="">"All of the head teachers that I speak to say that
they are fairly content with the security of the children in school and
not
content with the way parents are behaving." </xh:p>
<xh:p xmlns="">He said children "are kicked out in the morning and
told to go to school by themselves in street that are quite dark",
children
frequently return home to empty houses, or wander the streets, often in
groups "purely because they are bored".</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd5">
<tes:ThreadID>thrd6</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:46:11</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p xmlns="">
<xh:b>Parental problems</xh:b>
</xh:p>
<xh:p xmlns="">He too was confident the killer would be caught as
the "gap" between police and the community was changing for the better.
</xh:p>
<xh:p xmlns="">"I think ultimately the killers will be found."
</xh:p>
<xh:p xmlns="">He said the role of parents was the most important
aspect. </xh:p>
<xh:p xmlns="">"All of the head teachers that I speak to say that
they are fairly content with the security of the children in school and
not
content with the way parents are behaving." </xh:p>
<xh:p xmlns="">He said children "are kicked out in the morning and
told to go to school by themselves in street that are quite dark",
children
frequently return home to empty houses, or wander the streets, often in
groups "purely because they are bored".</xh:p>
</tes:Content>
</tes:SubThread>
<tes:SubThread ParentThreadID="thrd5">
<tes:ThreadID>thrd6</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>15:12:06</tes:AtTime>
</tes:Created>
<tes:Subject>RE: Test</tes:Subject>
<tes:Content>
<xh:p>
<xh:img
src="http://newsimg.bbc.co.uk/media/images/40566000/jpg/_40566183_india_also66.jpg"
wole="4" />
</xh:p>
</tes:Content>
</tes:SubThread>
</tes:SubThreads>
</tes:ForumTopic>
 
M

Martin Honnen

Wole Ogunremi wrote:

I'm putting a forum together allowing xhtml markup content. I am validating
against a schema but getting "Could not find schema information for element
<elementName>...

I would appreciate if anyone could advice where I am going wrong. TIA

Well how are you validating that document? Which XML parser are you
using, how are you using it?
When I save your files here locally and use the following JScript to
validate with MSXML 5 or MSXML 4

var xmlSchemaCache = new ActiveXObject('Msxml2.XMLSchemaCache.5.0');
xmlSchemaCache.add('http://www.test.com/Topics.xsd',
'test2004112801Xsd.xml');

var xmlDocument = new ActiveXObject('Msxml2.DOMDocument.5.0');
xmlDocument.schemas = xmlSchemaCache;

xmlDocument.async = false;
var valid = xmlDocument.load('test2004112801.xml');

then I get an error message
'Die ID 'thrd6' kommt doppelt vor.'
meaning the ID 'thrd6' is duplicated. And indeed looking into your
instance you have:


<tes:SubThread ParentThreadID="thrd5">
<tes:ThreadID>thrd6</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>14:46:11</tes:AtTime>
</tes:Created>

<tes:SubThread ParentThreadID="thrd5">
<tes:ThreadID>thrd6</tes:ThreadID>
<tes:AuthorID>Anonymous</tes:AuthorID>
<tes:Created>
<tes:OnDate>2004-11-27</tes:OnDate>
<tes:AtTime>15:12:06</tes:AtTime>
</tes:Created>

so that instance is not valid.

Also note that you shouldn't use the type xs:ID for element values, it
should only be used on attribute values to be compatible with the XML
1.0 specification and the XML DTD type ID. You can use xs:unique or
xs:key to define such element values as unique.
 
W

Wole Ogunremi

Martin

Thanks for your reply. I am developing using Visual Studio .NET 2003. I'm
working within the XML designer.

You are right about the mixed up IDs but actually the xml I pasted here is
an edited subset of my data. The real file respects ID uniqueness, so that's
not the issue. But thanks for the point on not using xs:ID for elements.

The errors I get when I ask the designer to validate the file are all "Could
not find schema information for the element
'http://www.w3.org/1999/xhtml:b'" and similar for the other elements within
the Content node.

Hope you can see some sense in it. I will email you the full file if you
don't mind.

TIA
Wole
 
M

Martin Honnen

Wole Ogunremi wrote:

I am developing using Visual Studio .NET 2003. I'm
working within the XML designer.

I see, then you should post in a Visual Studio .NET group or .NET xml
group, I think you have done that already but if your particular problem
is with that tool then you should mention it so that people can help
that use that tool too.

I will email you the full file if you
don't mind.

No, let's take that to the proper newsgroup, there someone using that
tool can help.
 
H

Henry S. Thompson

I don't immediately see anything wrong with your use of
wildcards/XHTML. Once the id problem already mentioned is patched,
and the namespaces are lined up, your instance [from this message]
validates without error with your schema [subsequent message], using
XSV [1]

ht

[1] http://www.ltg.ed.ac.uk/~ht/xsv-status.html
--
Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
Half-time member of W3C Team
2 Buccleuch Place, Edinburgh EH8 9LW, SCOTLAND -- (44) 131 650-4440
Fax: (44) 131 650-4587, e-mail: (e-mail address removed)
URL: http://www.ltg.ed.ac.uk/~ht/
[mail really from me _always_ has this .sig -- mail without it is forged spam]
 

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

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,226
Members
46,815
Latest member
treekmostly22

Latest Threads

Top