XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
RE: [xml-dev] extend two elements?

Amy,
 
You do not give the definition of your "student" type.
 
Let me make a few assumptions:
 
1. Your "student" type is sufficiently complex that it is worth doing this as an extension, rather than just a separate definition (the easy way).
 
2. Your "student" already contains an address, and you want to replace this with the "grad_address".
 
You already have a reply from Jack Lindsey making different assumptions.
 
If my assumptions are correct, you have a slight problem as an extension cannot replace the "address" type with the "grad_address" type. I would create a new type and derive both "student" and "grad_student" from this. Let's call the abstract type "student_base", with a definition that is the same as student but without the address. Then "student" extends this by adding the "address" and "grad_student" extends it by adding the "grad_address" and the appropriate attributes.
 
Note that you can make it impossible to create an element based on the "student_base" type directly if you like, but this is not strictly necessary.
 
Regards
 
Paul Spencer
 
 
-----Original Message-----
From: Amy Wong [mailto:amy_wanes@yahoo.com]
Sent: 31 October 2006 19:59
To: xml-dev@lists.xml.org
Subject: [xml-dev] extend two elements?

Hi,

I have an element called "grad_student" which extends "student". Now I want to extend "grad_address" element too since "grad_student" element needs address related info. Unfortunately I cannot merge address info from "grad_address" element into "grad_student" element. I am wondering how I can
extend another element when this element already extends a base element?

regards,

    <xsd:complexType name="grad_student">
<xsd:complexContent>
<xsd:extension base="student">
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="grade" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="grad_student" type="xyz:grad_student"/>

<xsd:complexType name="grad_address">
<xsd:complexContent>
<xsd:extension base="address">
<xsd:attribute name="state" type="xsd:string" use="required"/>
<xsd:attribute name="zip_code" type="xsd:string" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="grad_address" type="xyz:grad_address"/>


Low, Low, Low Rates! Check out Yahoo! Messenger's cheap PC-to-Phone call rates.


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


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

Copyright 1993-2007 XML.org. This site is hosted by OASIS