#!/usr/local/bin/perl use utf8; ## This file is written in UTF-8 use strict; require 'mkpm.pl'; use vars qw(%PROP %SET %SET_ALIAS); $PROP{module_name} = 'XML'; $PROP{version} = do{my @r=(q$Revision: 1.1 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r}; $PROP{author_name} = 'Wakaba'; $PROP{author_mail} = 'w@suika.fam.cx'; $SET{Char} = < defined in XML 1.0 spec (#2, ) !0009 !000A !000D !0020 D7FF !E000 FFFD !10000 10FFFF EOH $SET{S} = < defined in XML 1.0 spec (#3, ) !0009 !000A !000D !0020 EOH $SET{BaseChar} = qq(#DESCRIPTION C defined in XML 1.0 spec (#85, ) ).xml_ebnf_to_charlist (< defined in XML 1.0 spec (#86, ) ).xml_ebnf_to_charlist (q([#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029])); $SET{CombiningChar} = qq(#DESCRIPTION C defined in XML 1.0 spec (#87, ) ).xml_ebnf_to_charlist (< defined in XML 1.0 spec (#88, ) ).xml_ebnf_to_charlist (< defined in XML 1.0 spec (#89, ) ).xml_ebnf_to_charlist (< (::= C / C) defined in XML 1.0 spec (#84, ) ); for (split /\n/, $SET{BaseChar} . $SET{Ideographic}) { $SET{Letter} .= $_ . "\n" unless /^\#/; } $SET{NameChar} = < defined in XML 1.0 spec (#4, ) .-_: EOH $SET{_NameStartChar} = < defined in XML 1.0 spec (#5, ) _: EOH $SET{NCNameChar} = < defined in Namespace in XML spec (#5, ) .-_ EOH $SET{_NCNameStartChar} = < defined in Namespace in XML spec (#4, ) _ EOH for (split /\n/, $SET{Letter}) { $SET{_NameStartChar} .= $_ . "\n" unless /^\#/; $SET{NameChar} .= $_ . "\n" unless /^\#/; $SET{_NCNameStartChar} .= $_ . "\n" unless /^\#/; $SET{NCNameChar} .= $_ . "\n" unless /^\#/; } for (split /\n/, $SET{Digit} . $SET{CombiningChar} . $SET{Extender}) { $SET{NameChar} .= $_ . "\n" unless /^\#/; $SET{NCNameChar} .= $_ . "\n" unless /^\#/; } $SET{PubidChar} = <<'EOH'; #DESCRIPTION C defined in XML 1.0 spec (#13, ) !000A !000D !0020 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -'()+,./:=?;!*#@$_% EOH $SET{VersionNum} = <<'EOH'; #DESCRIPTION Characters are elements of C defined in XML 1.0 spec (#26, ) 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz -_.: EOH sub xml_ebnf_to_charlist ($) { my $r = ''; for my $p (split /\s*\|\s*/, shift) { if ($p =~ /\[\#x([0-9A-Fa-f]+)-\#x([0-9A-Fa-f]+)\]/) { $r .= uc "!$1 $2 \n"; } elsif ($p =~ /#x([0-9A-Fa-f]+)/) { $r .= uc "!$1\n"; } } $r; } &print_module; ## $Date: 2003/04/24 22:34:02 $ ### XML-src.upl ends here