- From: Costello, Roger L. <costello@mitre.org>
- Date: Fri, 5 Jun 2009 12:17:34 -0400
- To: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Hi Michael, I don't understand. Consider this base type (with mode="interleave") and subtype (with mode="none"): <complexType name="Publication" abstract="true"> <openContent mode="interleave"> <any /> </openContent> <sequence> <element name="Title" type="string" /> <element name="Author" type="string" /> <element name="Date" type="gYear"/> </sequence> </complexType> <complexType name="BookPublication"> <complexContent> <extension base="pub:Publication"> <openContent mode="none"> <any /> </openContent> <sequence> <element name="ISBN" type="string"/> <element name="Publisher" type="string"/> </sequence> </extension> </complexContent> </complexType> Now I declare the <Book> element to be of type BookPublication: <element name="Book" type="pub:BookPublication"> In the instance document, can I insert extension elements around the base type elements: Title, Author, Date? How about around the subtype elements: ISBN, Publisher? <Book> <Title>My Life and Times</Title> <-- around here? <Author>Paul McCartney</Author> <-- around here? <Date>1998</Date> <-- around here? <ISBN>1-56592-235-2</ISBN> <-- around here? <Publisher>McMillin Publishing</Publisher> <-- around here? </Book> Thanks again Michael. /Roger > -----Original Message----- > From: Michael Kay [mailto:mike@saxonica.com] > Sent: Friday, June 05, 2009 12:05 PM > To: Costello, Roger L.; xmlschema-dev@w3.org > Subject: RE: [XML Schema 1.1] Does mode="none" on a subtype > nullify the openness of its parent type? > > > > > Thanks Michael. So, by putting mode="none" on a subtype it is > > only prohibiting extension elements from being inserted > > around the subtypes' elements; extension elements can still > > be inserted around the parent type's elements. Is that correct? > > No! > > The content of an element is validated either against the > parent type P or > against the subtype S. If it's validated against P then > "extension" elements > are allowed; it it's validated against S then they aren't. > Which type is > used for validation depends on the type defined in the > element declaration > and/or the value of xsi:type on the instance. > > Regards, > > Michael Kay > http://www.saxonica.com/ > http://twitter.com/michaelhkay > >
Received on Friday, 5 June 2009 16:18:06 UTC