- From: gayathri veerarajan <gaytri_v@yahoo.co.in>
- Date: Tue, 23 Mar 2004 11:23:50 +0000 (GMT)
- To: "Henry S. Thompson" <ht@inf.ed.ac.uk>
- Cc: xmlschema-dev@w3.org
- Message-ID: <20040323112350.26004.qmail@web8202.mail.in.yahoo.com>
Sir, I would like to explain the situation with an example. I have a substitutable element price for the element amount.actually I would like it to work both ways, but u have mentioned earlier that it is not possible . hence I have a reference to the element amount in "PurchaseOrderType" so that the xml documents can contain the element "amount" or "price" as a substitutable element. In the complextype "Purchase-Derivant" derived from "PurchaseOrderType" ,i would like to restrict the element amount to type "xsd:positiveInteger". I have explained two situations where it is not possible. how can this be achieved? <xsd:element name="amount" type="xsd:integer"/> <xsd:element name="price" type="xsd:integer" substitutionGroup="amount"/> <xsd:complexType name= "PurchaseOrderType"> <xsd:sequence> <xsd:element name="shipTo" type="xsd:string" /> <xsd:element ref="amount" /> </xsd:sequence> </xsd:complexType> <xsd:complexType name="Purchase-Derivant"> <xsd:complexContent> <xsd:restriction base="r:PurchaseOrderType" > <xsd:sequence> <xsd:element name="shipTo" type="xsd:string"/> <!-- (1)this will work only if amount is local in base type--> <xsd:element name="amount" type="xsd:positiveInteger"/> <!-- (2) type cannot be specified along with ref --> <xsd:element ref="amount" type="xsd:positiveInteger"/> </xsd:sequence> </xsd:restriction> </xsd:complexContent> </xsd:complexType> I also found that declaring element "amount" locally inside the complextype also does not achieve interchangeable of elements. "Henry S. Thompson" <ht@inf.ed.ac.uk> wrote: gayathri veerarajan writes: > I just read the Xml Schema Second Edition .In the section of > substitution group it has been said that both the head element and > the substitutable elements must be declared global. This is not a change. > If the substitutable element happens to appear in the content model > of a complexType definition then while deriving a new complex type > by restriction,this element could not be restricted (by its type) if > it is declared globally. hence there should be a possibility to > declare the substitutable element locally also. any comments > regarding this. You can reference a global declaration at any point, so there is no bar to the kind of derivation you describe. 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@inf.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] Win an evening with the Indian cricket captain: Yahoo! India Promos.
Received on Tuesday, 23 March 2004 06:24:14 UTC