W3C home > Mailing lists > Public > www-html@w3.org > June 2006

Pattern error for MultiLengths type in xhtml1-frameset.xsd

From: Alexandre Alapetite <alexandre@alapetite.net>
Date: Sun, 11 Jun 2006 23:48:19 +0200
Cc: www-html@w3.org
To: "'Masayasu Ishikawa'" <mimasa@w3.org>
Message-ID: <000001c68da0$c0c68fc0$f9043f50@athlon1100>




Dear Masayasu Ishikawa,

In the XML Schema for XHTML 1.0 Frameset (dated 2002-08-28 mimasa)  
[http://www.w3.org/2002/08/xhtml/xhtml1-frameset.xsd] that is
the current official version, there is apparently an error in the regular  
expression pattern for the MultiLengths type, which is
used when defining cols and rows in a frameset  
[http://www.w3.org/TR/html401/present/frames.html#h-16.2.1.1].

None of the examples shown in the specification is accepted with the  
current pattern, event the very basic "50%, 50%":

<frameset rows="50%, 50%">
...the rest of the definition...
</frameset>

The regular expression pattern is imho indeed erroneous, due to wrong  
parenthesis (or very strange priorities). Therefore, I
propose the following correction:

Lines 246-256 of xhtml1-frameset.xsd:

   <xs:simpleType name="MultiLengths">
     <xs:annotation>
       <xs:documentation>
       comma-separated list of MultiLength
       </xs:documentation>
     </xs:annotation>
     <xs:restriction base="xs:string">
       <xs:pattern
           value="([+-]?(\d+|\d+(\.\d+)?%)|([1-9]\d*)*\*)(,\s*([+-]?(\d+|\d+(\.\d+)?%)|([1-9]\d*)*\*))*"/><!--  
Line corrected -->
     </xs:restriction>
   </xs:simpleType>

I have tested this new definition with the examples given in the  
specification, but additional validation is of course required.
Testing has been done with the Microsoft .NET 2.0 XML Schema engine, plus  
the PHP5 PCRE engine.

I hope this issue to be taken into consideration. A copy is sent to the  
www-html mailing list.

Cordially,
Alexandre
http://alexandre.alapetite.net
Received on Monday, 12 June 2006 19:43:21 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 27 March 2012 18:16:06 GMT