[Petal] Attributes with dashes

Olaf Buwen olaf at buwen.de
Tue Jan 4 20:04:37 GMT 2005


you are right; your example

 > So the regex needs to look something like this:
 >
 >     /^\s*([A-Za-z_:][A-Za-z0-9_:.-]*)\s+(.*?)\s*$/
 >

is rather close to the "perfect" solution, just escape the "." to
	/^\s*([A-Za-z_:][A-Za-z0-9_:\.-]*)\s+(.*?)\s*$/



Bruno Postle schrieb:
> On Tue 04-Jan-2005 at 15:55 +0100, Olaf Buwen wrote:
> 
>>
>> "tal:attributes='foo-bar data/foo/bar'" does not work, although XML 
>> allows attributes with dashes.
>>
>> As a workaround, I modified the regular expression in
>> Petal/Canonicalizer/XML.pm, line 547 from
> 
> 
>>      /^\s*((?:\w|\:)+)\s+(.*?)\s*$/
>> to
>>      /^\s*((?:[-\w]|\:)+)\s+(.*?)\s*$/
> 
> 
> It would be nice if either regex matched the XML specification for 
> attribute names.  Petal could generate attributes like these which I'm 
> sure are not within the XML spec:
> 
>      -foo="whatever"
>      --bar="whatever"
> 
> This might also cause trouble with the "--value" system for passing 
> arguments to methods.
> 
> Also I think this is a valid XML attribute:
> 
>    foo_2.BAR="whatever"
> 
> So the regex needs to look something like this:
> 
>     /^\s*([A-Za-z_:][A-Za-z0-9_:.-]*)\s+(.*?)\s*$/
> 
> Comments?  I'm no regular expression guru.
> 


More information about the Petal mailing list