Pattern error for MultiLengths type in xhtml1-frameset.xsd

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 UTC