- From: Costello, Roger L. <costello@mitre.org>
- Date: Fri, 29 May 2009 11:50:13 -0400
- To: "'xmlschema-dev@w3.org'" <xmlschema-dev@w3.org>
Thanks Michael. So the <any> element within an <openContent> is always (effectively) minOccurs="1" and maxOccurs="1". Correct? That is, it is effectively this: <element name="Book"> <complexType> <openContent mode="interleaved"> <any minOccurs="1" maxOccurs="1" /> </openContent> <sequence> <element name="Title" type="string"/> <element name="Author" type="string" /> <element name="Date" type="string"/> <element name="ISBN" type="string"/> <element name="Publisher" type="string"/> </sequence> </complexType> </element> Correct? Now, what does that mean? Does it mean that 1 new element *must* be inserted into the <sequence> content model? Or, does it mean that: Before the <Title> element there *must* be 1 new element, and Before the <Author element there *must* be 1 new element, and Before the <Date> element there *must* be 1 new element, and Before the <ISBN> element there *must* be 1 new element, and Before the <Publisher> element there *must* be 1 new element, and After the <Publisher> element there *must* be 1 new element. And what about mode="suffix": <element name="Book"> <complexType> <openContent mode="suffix"> <any /> </openContent> <sequence> <element name="Title" type="string"/> <element name="Author" type="string" /> <element name="Date" type="string"/> <element name="ISBN" type="string"/> <element name="Publisher" type="string"/> </sequence> </complexType> </element> Does this mean that 1 new element must always be placed at the bottom of the <sequence> content model (after the <Publisher> element)? /Roger > -----Original Message----- > From: Michael Kay [mailto:mike@saxonica.com] > Sent: Friday, May 29, 2009 11:39 AM > To: Costello, Roger L.; xmlschema-dev@w3.org > Subject: RE: [XML Schema 1.1] Many questions about openContent > > > On the first question, the schema component model for open > content does not > include a minOccurs and maxOccurs value (the {open content} > property is a > wildcard, not a wildcard particle). As far as I can see, it > is permitted to > specify these values in the XML representation, but they are ignored. > Perhaps they should not be allowed: I'll raise a bug to propose this. > > On the second question, mode="none" is used in the same way as > use="prohibited" on attributes, to suppress inheritance of > openContent in a > type that would otherwise acquire it automatically. > > Regards, > > Michael Kay > http://www.saxonica.com/ > http://twitter.com/michaelhkay > > > > > -----Original Message----- > > From: xmlschema-dev-request@w3.org > > [mailto:xmlschema-dev-request@w3.org] On Behalf Of > Costello, Roger L. > > Sent: 29 May 2009 16:23 > > To: 'xmlschema-dev@w3.org' > > Subject: [XML Schema 1.1] Many questions about openContent > > > > > > Hi Folks, > > > > Here is an example of declaring a <Book> element with open content: > > > > <element name="Book"> > > <complexType> > > <openContent mode="interleaved"> > > <any minOccurs="..." maxOccurs="..." /> > > </openContent> > > <sequence> > > <element name="Title" type="string"/> > > <element name="Author" type="string" /> > > <element name="Date" type="string"/> > > <element name="ISBN" type="string"/> > > <element name="Publisher" type="string"/> > > </sequence> > > </complexType> > > </element> > > > > Notice that I left unspecified the value of minOccurs and > > maxOccurs on the <any> element. > > > > If I specify minOccurs="0" and maxOccurs="1" does it mean > > that 0-1 new elements can be inserted into the <sequence> > > content model? Or, does it mean that: > > > > Before the <Title> element there can be 0-1 new elements, and > > Before the <Author element there can be 0-1 new elements, and > > Before the <Date> element there can be 0-1 new elements, and > > Before the <ISBN> element there can be 0-1 new elements, and > > Before the <Publisher> element there can be 0-1 new elements, and > > After the <Publisher> element there can be 0-1 new elements. > > > > If I specify minOccurs="1" and maxOccurs="1" does it mean > > that 1 new element must be inserted into the <sequence> > > content model? Or, does it mean that: > > > > Before the <Title> element there must be 1 new element, and > > Before the <Author element there must be 1 new element, and > > Before the <Date> element there must be 1 new element, and > > Before the <ISBN> element there must be 1 new element, and > > Before the <Publisher> element there must be 1 new element, and > > After the <Publisher> element there must be 1 new element. > > > > If I specify minOccurs="0" and maxOccurs="unbounded" does it > > mean that 0-unbounded new elements can be inserted into the > > <sequence> content model? Or, does it mean that: > > > > Before the <Title> element there can be 0-unbounded new > > elements, and > > Before the <Author element there can be 0-unbounded new > > elements, and > > Before the <Date> element there can be 0-unbounded new > > elements, and > > Before the <ISBN> element there can be 0-unbounded new > > elements, and > > Before the <Publisher> element there can be 0-unbounded > > new elements, and > > After the <Publisher> element there can be 0-unbounded new > > elements. > > > > > > Next, suppose I change the mode to 'suffix': > > > > <element name="Book"> > > <complexType> > > <openContent mode="suffix"> > > <any minOccurs="..." maxOccurs="..." /> > > </openContent> > > <sequence> > > <element name="Title" type="string"/> > > <element name="Author" type="string" /> > > <element name="Date" type="string"/> > > <element name="ISBN" type="string"/> > > <element name="Publisher" type="string"/> > > </sequence> > > </complexType> > > </element> > > > > I believe mode="suffix" means that new elements must always > > be placed at the bottom of the <sequence> content model > > (after the <Publisher> element). Correct? > > > > If I specify minOccurs="0" and maxOccurs="1" does it mean > > that 0-1 new elements can be inserted at the bottom of the > > <sequence> content model? > > > > If I specify minOccurs="1" and maxOccurs="1" does it mean > > that 1 new element must be inserted at the bottom of the > > <sequence> content model? > > > > If I specify minOccurs="0" and maxOccurs="unbounded" does it > > mean that 0-unbounded new elements can be inserted at the > > bottom of the <sequence> content model? > > > > > > Lastly, suppose I change the mode to 'none': > > > > <element name="Book"> > > <complexType> > > <openContent mode="none"> > > <any minOccurs="..." maxOccurs="..." /> > > </openContent> > > <sequence> > > <element name="Title" type="string"/> > > <element name="Author" type="string" /> > > <element name="Date" type="string"/> > > <element name="ISBN" type="string"/> > > <element name="Publisher" type="string"/> > > </sequence> > > </complexType> > > </element> > > > > What does mode="none" mean? Does it mean: > > > > You cannot insert new elements into the <sequence> > content model. > > > > How is it different from this (no openContent specified): > > > > <element name="Book"> > > <complexType> > > <sequence> > > <element name="Title" type="string"/> > > <element name="Author" type="string" /> > > <element name="Date" type="string"/> > > <element name="ISBN" type="string"/> > > <element name="Publisher" type="string"/> > > </sequence> > > </complexType> > > </element> > > > > Are they the same? If they are, why have mode="none"? What's > > its value? > > > > /Roger > >
Received on Friday, 29 May 2009 15:50:46 UTC