- From: Costello, Roger L. <costello@mitre.org>
- Date: Fri, 5 Jun 2009 13:44:39 -0400
- To: "xmlschema-dev@w3.org" <xmlschema-dev@w3.org>
Hi Folks,
Here are five questions I have about openContent when used with a type and subtype.
QUESTION #1
Consider this base type (with mode="interleave") and a subtype:
<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">
<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>
QUESTION #2
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>
-- From Michael's latest message,
-- this is an invalid schema. Yes?
QUESTION #3
Consider this base type and subtype (with mode="interleave"):
<complexType name="Publication" abstract="true">
<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="interleave">
<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>
QUESTION #4
Consider this base type (mode="suffix") and subtype (with mode="interleave"):
<complexType name="Publication" abstract="true">
<openContent mode="suffix">
<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="interleave">
<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>
QUESTION #5
Consider this base type (mode="interleave") and subtype (with mode="suffix"):
<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="suffix">
<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>
/Roger
Received on Friday, 5 June 2009 17:45:14 UTC