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

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Best Practice for this problem?



Paul Spencer <paul.spencer@boynings.co.uk> writes:

> I have recently been asked to look at a schema, of which this is a part:

<snip/>

> The intention is clear - at least one of the three elements <Town>,
> <Locality>, <County>, but each must not appear more than once.

There are several problems here -- first of all, you are breaking the
unique attribution rule.  Second of all, you haven't got all the bases 
covered.

The DTD equivalent of what you want is
((t,((c,d?)|(d,c?))?)|(c,((t,d?)|(d,t?))?)|(d,((c,t?)|(t,c?))?))

Just transcribe this into XML Schema.

> I believe the format to be non-compliant with XML Schema since each of the
> three elements has multiple definitions within the same scope. XML Authority
> 2.1 agrees with me, XML Spy 3.5 does not.

Nope, they all have the same type, so that's OK.

> If I am right, there are two choices:
> 
> 1. Define the three elements globally, then reference them as required. This
> loses the benefit of a local definition within the complex data type.

You could certainly do that.

> 2. Define the elements as at the start of the example:
> 
> 				<xsd:choice>
> 					<xsd:element name="Town" type="bs7666:TownType"/>
> 					<xsd:element name="Locality" type="bs7666:LocalityType"/>
> 					<xsd:element name="County" type="bs7666:CountyType"/>
> 				</xsd:choice>
> 
> Then access by reference from there. For example:
> 
> 				<xsd:sequence>
> 					<xsd:element ref="Town"/>
> 					<xsd:element ref="Locality"/>
> 				</xsd:sequence>
> 
> I have never seen an example that uses "ref=" pointing to a locally scoped
> definition. Is this allowed?

Not allowed, although we considered it and may come back to it.

ht
-- 
  Henry S. Thompson, HCRC Language Technology Group, University of Edinburgh
          W3C Fellow 1999--2001, part-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/