- From: <noah_mendelsohn@us.ibm.com>
- Date: Thu, 8 Aug 2002 23:35:12 -0400
- To: Michael Nahas <mike_nahas@yahoo.com> (by way of "C. M. Sperberg-McQueen" <<mike_nahas@yahoo.com<mike_nahas>)
- Cc: W3C XML Schema Comments list <www-xml-schema-comments@w3.org>
Except for the syntax, schema content models are essentially regular
expressions over element names:
(A|B) ==> <xsd:choice>
(A,B) ==> <xsd:sequence>
A* = <element ref="A" minOccurs="0" maxOccurs="unbounded"/>
A+= <element ref="A" minOccurs="1" maxOccurs="unbounded"/>
(A|B)* ==> <xsd:choice minOccurs="0" maxOccurs="unbounded">
This is not an accident. Schemas are designed as regular expressions, and
have a heritage in DTDs, which are regular expressions. The schema WG
considered the Kleene operators (e.g. *, +) and decided instead on on the
syntax you see above. So, I think schemas already have the function that
you are requesting. Thank you.
------------------------------------------------------------------
Noah Mendelsohn Voice: 1-617-693-4036
IBM Corporation Fax: 1-617-693-8676
One Rogers Street
Cambridge, MA 02142
------------------------------------------------------------------
Michael Nahas <mike_nahas@yahoo.com> (by way of "C. M. Sperberg-McQueen"
<cmsmcq
Sent by: www-xml-schema-comments-request@w3.org
07/29/2002 05:59 PM
To: W3C XML Schema Comments list <www-xml-schema-comments@w3.org>
cc: (bcc: Noah Mendelsohn/Cambridge/IBM)
Subject: Regular expressions
Sir or Madam:
I'd like if the next XML Schema spec had a clear
relationship to regular
expressions. I (and a lot of other people) know and understand regular
expressions. They're well known by the parsing community. So, I'd love
it
if the new spec contained things that had a relationship to +, *, ?, |,
(). I suggest tag names of"atLeastOne" "anyNumber" "optionally",
"chooseOne", and "grouping".
So you might end up with something like this:
<element name="element">
<chooseOne>
<element name="isOfType>
<attribute name="type"
value="string">
</element>
<grouping>
<optionally>
<element
name="extendsType>
<attribute name="type" value="string">
</element>
</optionally>
<anyNumber>
<element
name="attribute>
<attribute name="name" value="string">
<attribute name="value" value="string>
<element>
</anyNumber>
<anyNumber>
<element
name="element">
<attribute name="name" value="string">
</element>
</anyNumber>
</grouping>
</chooseOne>
</element>
I think it is much cleaner than what is currently being
used in schemas.
Michael Nahas
Received on Thursday, 8 August 2002 23:36:46 UTC