OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Defining an XML Fragment in W3C Schema

[ Lists Home | Date Index | Thread Index ]

That's *exactly* what I was looking for. Thanks Henry!

"Henry S. Thompson" wrote:
> 
> "Chiusano Joseph" <chiusano_joseph@bah.com> writes:
> 
> > I have a need to define an XML fragment in a W3C schema. In other words,
> > an element or attribute in the schema should be able to contain an XML
> > fragment, with the parser recognizing this XML fragment as actual data
> > rather than part of the XML document.
> >
> > I've researched XML Fragments, and I also understand that CDATA was part
> > of the W3C Schema specification at one point but did not make it into
> > the final version.  Can anyone please suggest a way to accomplish this?
> >
> > Much appreciated,
> 
> Not sure I understand, but I'll try.
> 
> You want an element to be constrained to contain a quoted XML
> fragment.  So the following is OK:
> 
> <root>
> <fragmentContainer>
> &lt;?xml version='1.0'?&gt;
> &lt;doc/&gt;
> </fragmentContainer>
> </root>
> 
> But the following is not:
> 
> <root>
> <fragmentContainer>
> &lt;?xml version='1.0'?&gt;
> garbage
> </fragmentContainer>
> </root>
> 
> Is that it?
> 
> In which case, _mirabile dictu_, the best you can do is use a
> NOTATION, along the following lines
> 
> <xs:notation name="XML_10_2e"
>              public="-//W3C//NOTATION XML 1.0//EN"
>              system="http://www.w3.org/TR/2000/REC-xml-20001006"/>
> 
> <xs:element name="fragmentContainer">
>  <xs:complexType>
>   <xs:simpleContent>
>    <xs:extension base="xs:string">
>     <xs:attribute name="fragType" fixed="XML_10_2e">
>      <xs:simpleType>
>       <xs:restriction base="xs:NOTATION">
>        <xs:enumeration value="XML_10_2e"/>
>       </xs:restrition>
>      </xs:simpleType>
>     </xs:attribute>
>    </xs:extension>
>   </xs:simpleContent>
>  </xs:complexType>
> </xs:element>
> 
> Note that because XML Schema works on infosets, not character strings,
> there's now way it could have defined something equivalent to SGML's
> CDATA, even if it had wanted to.  So for direct inclusion of a quoted
> XML fragment, you need to use either &lt; etc. or <![CDATA[ .... ]]>
> _in your instance_.
> 
> XInclude provides a way to include an XML fragment as text.
> 
> Hope this helps.
> 
> ht
> --
>   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: ht@cogsci.ed.ac.uk
>                      URL: http://www.ltg.ed.ac.uk/~ht/
>  [mail really from me _always_ has this .sig -- mail without it is forged spam]
> 
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
> 
> The list archives are at http://lists.xml.org/archives/xml-dev/
> 
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://lists.xml.org/ob/adm.pl>
begin:vcard 
n:Chiusano;Joseph
tel;work:(703) 902-6923
x-mozilla-html:FALSE
url:www.bah.com
org:Booz | Allen | Hamilton;IT Digital Strategies Team
adr:;;8283 Greensboro Drive;McLean;VA;22012;
version:2.1
email;internet:chiusano_joseph@bah.com
title:Senior Consultant
fn:Joseph M. Chiusano
end:vcard




 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS