[
Lists Home |
Date Index |
Thread Index
]
> Why isn't it done?
Good question. It should be. Of course, the notation suggests to most
compsci people that recursion will be permitted, i.e., that this is a
context-free instead of regular grammar, and that's probably not what
you intended.
Bob Foster
http://xmlbuddy.com/
David Tolpin wrote:
> Some schema languages use string regular expressions to check lexical space of
> attributes and character data. The regex strings often become uncomprehensible,
> such as
>
> (([a-zA-Z][0-9a-zA-Z+\-\.]*:)?/{0,2}[0-9a-zA-Z;/?:@&=+$\.\-_!~*'()%]+)?(#[0-9a-zA-Z;/?:@&=+$\.\-_!~*'()%]+)?
>
> for any URI.
>
> Providing a structured syntax, similar to that for XML, would help reading and debugging
> them, for example,
>
> s-pattern="""
> comment = "\(([^\(\)\\]|\\.)*\)"
> atom = "[a-zA-Z0-9!#$%&'*+\-/=?\^_`{|}~]+"
> atoms = atom "(\." atom ")*"
> person = "\"([^\"\\]|\\.)*\""
> location = "\[([^\[\]\\]|\\.)*\]"
> local-part = "(" atoms "|" person ")"
> domain = "(" atoms "|" location ")"
> start = "(" comment " )?" local-part "@" domain "( " comment ")?"
> """
>
> instead of
>
> pattern=
> "(\(([^\(\)\\]|\\.)*\) )?"
> ~ """([a-zA-Z0-9!#$%&'*+\-/=?\^_`{|}~]+(\.[a-zA-Z0-9!#$%&'*+\-/=?\^_`{|}~]+)*|"([^"\\]|\\.)*")"""
> ~ "@"
> ~ "([a-zA-Z0-9!#$%&'*+\-/=?\^_`{|}~]+(\.[a-zA-Z0-9!#$%&'*+\-/=?\^_`{|}~]+)*|\[([^\[\]\\]|\\.)*\])"
> ~ "( \(([^\(\)\\]|\\.)*\))?"
>
> Why isn't it done?
>
> David
>
> -----------------------------------------------------------------
> The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
> initiative of OASIS <http://www.oasis-open.org>
>
> The list archives are at http://lists.xml.org/archives/xml-dev/
>
> To subscribe or unsubscribe from this list use the subscription
> manager: <http://lists.xml.org/ob/adm.pl>
>
>
|