Re: kind of mixed (and ordered) content

Mukul Gandhi <[email protected]>
Newsgroups gmane.text.xml.schema.devel
Message-ID <[email protected]>
I believe this list is about W3C XML Schema.

I'm not sure how this could be done with RELAX NG.

But it should be possible to write such a validation constraint with
XSD 1.1 (it's still not a REC) assertions. An example of this is
below:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

	<xs:element name="span">
	     <xs:complexType mixed="true">
	           <xs:sequence>
		        <xs:element name="a" type="LINK" maxOccurs="unbounded" />
	           </xs:sequence>
	           <xs:attribute name="class" type="xs:string" />
	           <xs:assert test="text()[preceding-sibling::a[1] and
following-sibling::a[1]][. = ', ']
		                              and
					    normalize-space(a[1]/preceding-sibling::text()) = '' and
					    normalize-space(a[last()]/following-sibling::text()) = ''" />
	     </xs:complexType>
	</xs:element>
	
	<xs:complexType name="LINK">
	     <xs:simpleContent>
	          <xs:extension base="xs:string">
		      <xs:attribute name="href" type="xs:anyURI" />
		  </xs:extension>
	     </xs:simpleContent>
	</xs:complexType>
	
</xs:schema>

The assertion in above schema specifies:
1. Any two <a> have ", " in between
2. The first and last <a> can be preceded and followed (respectively)
only by white-space's.


On Mon, Aug 2, 2010 at 7:57 PM, Matthieu Ricaud-Dussarget
<[email protected]> wrote:
> ** The constraint **

> is a restriction on xhtml elements. I need to say : "this span contain a
> serie of links separated by a coma and a space"
> that is :
> <span class="foo">
>     <a href="#1">1</a>,&#160;
>     <a href="#2">2</a>,&#160;
>     <a href="#3">2</a>,&#160;
> </span>
> (well it would be even better if the last <a> has no text after but let say
> I don't care about that)




-- 
Regards,
Mukul Gandhi
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.