Re: [Moderator Action] FW: question on attributes

"Fisseha, Haeran" <hfisseha@netfish.com> writes:

> I wanted to ask if W3C Schema standards allow the use of sequential
> identical child elements
> that are differentiated only by the value of an attribute

Allow: of course.  Provide for requiring: not in v.1.

> For instance OAG BODs make use of attribute values to distinguish identical
> elements. for example the
> DATETIME element which can be used multiple times by using different values
> for the
> qualifier attribute.  Thus we have the SHIPMENT element that can have
> multiple children
> with the same element name DATETIME  but with different attribute values as
> seen in the DTD below
> 
> <!ELEMENT SHIPMENT ((%DATETIME.DOCUMENT;), (%AMOUNT.DECLAREVAL;)?,
> (%AMOUNT.DOCUMENT.T;)?, (%AMOUNT.ESTFREIGHT;)?, (%AMOUNT.FREIGHT.T;)?,
> (%AMOUNT.ITEM.T;)?, (%DATETIME.CREATION;)?, (%DATETIME.DELIVACT;)?,
> (%DATETIME.DELIVSCHED;)?, (%DATETIME.EARLSTSHIP;)?, (%DATETIME.LOADING;)?,
> (%DATETIME.NEEDDELV;)?, (%DATETIME.PROMDELV;)?, (%DATETIME.PROMSHIP;)?,
> (%DATETIME.SHIP;)?, (%DATETIME.SHIPSCHED;)?, 
> 
> the "qualifier" attribute of the child element DATETIME can have up to 68
> values so the same element can appear multiple times.  Currently we see this
> in both the DTD and xdr versions of OAG BOD 161.  Does the spec for W3C
> schema allow
> this?

Neither DTD nor XDR can _enforce_ this, unless I misunderstand.  What
my earlier investigation into OAG suggested was that the stylized
parameter entities which appear above (e.g. DATETIME.PROMDELV) are an
attempt to provide both element (PROMDELV) and type (DATETIME)
information.  This _can_ be reconstructed in XML Schema, very well:

<xs:sequence>
 ...
 <xs:element name="PROMDELV" type="oag:DATETIME" minOccurs="0"/>
 ...
</xs:sequence>

The use of .T and .F to signify subtypes is also possible:

 <xs:complexType name="AMOUNT.T">
  <xs:complexContent>
   <xs:restriction base="oag:AMOUNT">
    <xs:attribute name="type" use="required" fixed="T"/>
   </xs:restriction>
  </xs:complexContent>
 </xs:complexType>

 ...
 <xs:element name="FREIGHT" type="oag:AMOUNT.T" minOccurs="0"/>

I hope this helps -- it's based on looking at the OAG DTDs over a year 
ago, so sorry if I've misunderstood.

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/

Received on Saturday, 10 February 2001 06:44:44 UTC