- From: Michael Kay <mike@saxonica.com>
- Date: Wed, 6 Apr 2005 10:06:14 +0100
- To: "'Kostas Karadamoglou'" <karadamoglou_k@yahoo.gr>, <xmlschema-dev@w3.org>
> > I am new to xml schema and to this mailing list (if misuse it please > inform me). > > I would like to write an element (question) which does the following: > > question can have either: > > title(optional), content and weight > > or: > > title, content(optional), weight(optional) and question Since no repetition is involved you can tackle this by writing out all the permitted sequences: CW TCW TQ TCQ TWQ TCWQ and then factor them by combining those that start with the same subsequence: (CW)|(T(C(WQ?|Q)|WQ|Q)) that is, choice ( sequence(C, W), sequence (T, choice( sequence(C, choice (sequence (W, Q?), Q), sequence(W, Q), Q) ) ) Michael Kay http://www.saxonica.com/ > > I tried to implement the above rules in an xml schema but I got a > "Unique Particle Attribution". Below I provide you with the > xml fragment > that implement the rules. Can you tell me how I can implement > these rules? > > <xs:group name="simpleQuestionItems"> > <xs:sequence> > <xs:element ref="title" minOccurs="0" maxOccurs="1"/> > <xs:element ref="content"/> > <xs:element ref="weight"/> > </xs:sequence> > </xs:group> > > <xs:group name="complexQuestionItems"> > <xs:sequence> > <xs:element ref="title"/> > <xs:element ref="content" minOccurs="0" maxOccurs="1"/> > <xs:element ref="weight" minOccurs="0" maxOccurs="1"/> > <xs:element ref="question" minOccurs="1" > maxOccurs="unbounded"/> > </xs:sequence> > </xs:group> > > <xs:element name="question"> > <xs:complexType> > <xs:choice> > <xs:group ref="simpleQuestionItems"/> > <xs:group ref="complexQuestionItems"/> > </xs:choice> > <xs:attribute name="required" type="xs:boolean" > default="false"/> > </xs:complexType> > </xs:element> > > > >
Received on Wednesday, 6 April 2005 09:06:23 UTC