Ureader.com  
Microsoft software help and Community
   home   |   control panel login   |   archive   |  
 
XML
data.xmlanalysis
mappoint.webservice
msf
msxml-webrelease
netmyservices.sdk
passport.sdk
soap
soapsdk
uddi.general
uddi.programming
uddi.specification
xml
xmlsqlwebrelease
xsl
  
 
date: Wed, 14 May 2008 10:05:42 +0100,    group: microsoft.public.xml        back       


Free XML in schema   
I'm trying to create a schema for a messaging application, but one of the 
fields needs to contain XHTML. e.g.

<message>
  <subject>Hello!</subject>
  <body>
    <h1>Test</h1>
    <p>This is a test message</p>
  </body>
</message>

I have:
<xs:element name="body" type="xs:string" minOccurs="1" maxOccurs="1" />
But this fails for the above snippet because I have type=string. How can I 
allow this element to contain free XML?
date: Wed, 14 May 2008 10:05:42 +0100   author:   Leon Mayne

Re: Free XML in schema   
Leon Mayne wrote:
> I'm trying to create a schema for a messaging application, but one of 
> the fields needs to contain XHTML. e.g.
> 
> <message>
>  <subject>Hello!</subject>
>  <body>
>    <h1>Test</h1>
>    <p>This is a test message</p>
>  </body>
> </message>

Note that XHTML 1.x elements as defined by the W3C are in the namespace 
http://www.w3.org/1999/xhtml so what you show is not XHTML as defined by 
the W3C.

> I have:
> <xs:element name="body" type="xs:string" minOccurs="1" maxOccurs="1" />
> But this fails for the above snippet because I have type=string. How can 
> I allow this element to contain free XML?

Include a schema for your "XHTML" elements (or import one if you move to 
real XHTML in the namespace http://www.w3.org/1999/xhtml).
As an alternative you could consider xs:any 
(http://www.w3.org/TR/xmlschema-0/#any), that allows you not to specify 
what exactly the contents is.

-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
date: Wed, 14 May 2008 14:20:11 +0200   author:   Martin Honnen

Re: Free XML in schema   
"Martin Honnen"  wrote in message 
news:utq7czbtIHA.420@TK2MSFTNGP02.phx.gbl...
> Include a schema for your "XHTML" elements (or import one if you move to 
> real XHTML in the namespace http://www.w3.org/1999/xhtml).
> As an alternative you could consider xs:any 
> (http://www.w3.org/TR/xmlschema-0/#any), that allows you not to specify 
> what exactly the contents is.

Sorry for the delay in replying. I tried using xs:any and pointing to the 
XHTML namespace:

        <xs:element name="body" minOccurs="1" maxOccurs="1">
          <xs:complexType>
            <xs:sequence>
              <xs:any namespace="http://www.w3.org/1999/xhtml" minOccurs="1" 
maxOccurs="unbounded" processContents="skip"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>

But when trying to add a snippet containing the below body tag:

  <body>
    <span>
      <p>This is an automated email. Please find below the details for your 
new login:</p>
      <p>
            Username: yourname<br />
            Password: yourpassword</p>
      <p>
            Please contact support if you require any assistance.
          </p>
    </span>
  </body>

I get:

XML Validation: Invalid content. Expected 
element(s):http://www.w3.org/1999/xhtml:* where element 'span' was 
specified. Location: /*:email[1]/*:body[1]/*:span[1]

I added the span tag to make it have a root element, but did try without it 
(just two top level <p> tags). I'm sure I've done something silly, but I 
can't spot it at the moment. Do you know what might be wrong?
date: Thu, 15 May 2008 09:55:54 +0100   author:   Leon Mayne

Re: Free XML in schema   
Leon Mayne wrote:

> Sorry for the delay in replying. I tried using xs:any and pointing to 
> the XHTML namespace:
> 
>        <xs:element name="body" minOccurs="1" maxOccurs="1">
>          <xs:complexType>
>            <xs:sequence>
>              <xs:any namespace="http://www.w3.org/1999/xhtml" 
> minOccurs="1" maxOccurs="unbounded" processContents="skip"/>
>            </xs:sequence>
>          </xs:complexType>
>        </xs:element>
> 
> But when trying to add a snippet containing the below body tag:
> 
>  <body>
>    <span>

Well if your schema mandates the namespace http://www.w3.org/1999/xhtml 
then you should use it in the instance document. Otherwise the XML is 
obviously not valid. If you don't want to use a namespace then you need 
to change the schema.


-- 

	Martin Honnen --- MVP XML
	http://JavaScript.FAQTs.com/
date: Thu, 15 May 2008 13:30:02 +0200   author:   Martin Honnen

Re: Free XML in schema   
"Martin Honnen"  wrote in message 
news:ORrMG8ntIHA.1240@TK2MSFTNGP02.phx.gbl...
> Well if your schema mandates the namespace http://www.w3.org/1999/xhtml 
> then you should use it in the instance document. Otherwise the XML is 
> obviously not valid. If you don't want to use a namespace then you need to 
> change the schema.

The who in the what now? Can I ignore the XHTML schema and just allow any 
XML instead of specifically XHTML?
date: Thu, 15 May 2008 13:29:02 +0100   author:   Leon Mayne

Re: Free XML in schema   
"Martin Honnen"  wrote in message 
news:ORrMG8ntIHA.1240@TK2MSFTNGP02.phx.gbl...
> Well if your schema mandates the namespace http://www.w3.org/1999/xhtml 
> then you should use it in the instance document. Otherwise the XML is 
> obviously not valid. If you don't want to use a namespace then you need to 
> change the schema.

Oh wait, got it now.
Thanks for your help.
date: Thu, 15 May 2008 13:31:01 +0100   author:   Leon Mayne

Google
 
Web ureader.com


    COPYRIGHT 2007, YARDI TECHNOLOGY LIMITED, ALL RIGHT RESERVE  |   contact us