/[suikacvs]/perl/charclass/lib/Char/Class/XML-src.upl
Suika

Contents of /perl/charclass/lib/Char/Class/XML-src.upl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (hide annotations) (download)
Sun Jun 15 01:58:58 2003 UTC (21 years, 5 months ago) by wakaba
Branch: MAIN
Changes since 1.1: +83 -1 lines
unicode-xml W3C Note is supported

1 wakaba 1.1 #!/usr/local/bin/perl
2     use utf8; ## This file is written in UTF-8
3     use strict;
4     require 'mkpm.pl';
5     use vars qw(%PROP %SET %SET_ALIAS);
6     $PROP{module_name} = 'XML';
7     $PROP{version} = do{my @r=(q$Revision: 1.1 $=~/\d+/g);sprintf "%d."."%02d" x $#r,@r};
8     $PROP{author_name} = 'Wakaba';
9     $PROP{author_mail} = 'w@suika.fam.cx';
10    
11 wakaba 1.2 $PROP{pod_description} = <<EOH;
12     Character classes for XML, the Extensible Markup Language
13     EOH
14    
15     $PROP{pod_see_also} = <<EOH;
16     "Extensible Markup Language (XML) 1.0", W3C Recommendation,
17     <http://www.w3.org/TR/REC-xml>. First Edition, 1998-02-10,
18     <http://www.w3.org/TR/1998/REC-xml-19980210>.
19     Second Edition, 2000-10-06, <http://www.w3.org/TR/2000/WD-xml-2e-20000814>.
20    
21     "XML 1.0 Specification Errata", <http://www.w3.org/XML/xml-19980210-errata>.
22     The errata list of XML 1.0 First Edition.
23    
24     "XML 1.0 Second Edition Specification Errata",
25     <http://www.w3.org/XML/xml-V10-2e-errata>.
26     The errata list of XML 1.0 Second Edition.
27    
28     "Namespaces in XML", W3C Recommendation, <http://www.w3.org/TR/REC-xml-names>.
29     First Edition, 1999-01-14, <http://www.w3.org/TR/1999/REC-xml-names-19990114>.
30    
31     "Namespaces in XML Errata", <http://www.w3.org/XML/xml-names-19990114-errata>.
32    
33     "Unicode in XML and other Markup Languages", Unicode Technical Report #20,
34     W3C Note, <http://www.w3.org/TR/unicode-xml/>. This version of this module
35     refers 2003-06-13 version of the W3C Note
36     <http://www.w3.org/TR/2003/NOTE-unicode-xml-20030613/>.
37     EOH
38    
39 wakaba 1.1 $SET{Char} = <<EOH;
40     #DESCRIPTION C<Char> defined in XML 1.0 spec (#2, <http://www.w3.org/TR/REC-xml#NT-Char>)
41     !0009
42     !000A
43     !000D
44     !0020 D7FF
45     !E000 FFFD
46     !10000 10FFFF
47     EOH
48    
49     $SET{S} = <<EOH;
50     #DESCRIPTION Characters are elements of C<S> defined in XML 1.0 spec (#3, <http://www.w3.org/TR/REC-xml#NT-S>)
51     !0009
52     !000A
53     !000D
54     !0020
55     EOH
56    
57     $SET{BaseChar} = qq(#DESCRIPTION C<BaseChar> defined in XML 1.0 spec (#85, <http://www.w3.org/TR/REC-xml#NT-BaseChar>)
58     ).xml_ebnf_to_charlist (<<EOH);
59     [#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E] | [#x0141-#x0148] | [#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5] | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386 | [#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE] | [#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0 | [#x03E2-#x03F3] | [#x0401-#x040C] | [#x040E-#x044F] | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4] | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB] | [#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559 | [#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2] | [#x0621-#x063A] | [#x0641-#x064A] | [#x0671-#x06B7] | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3] | #x06D5 | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | [#x0958-#x0961] | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8] | [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD] | [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A] | [#x0A0F-#x0A10] | [#x0A13-#x0A28] | [#x0A2A-#x0A30] | [#x0A32-#x0A33] | [#x0A35-#x0A36] | [#x0A38-#x0A39] | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | [#x0A85-#x0A8B] | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | [#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0 | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28] | [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D | [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A] | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA] | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C] | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33] | [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C] | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | [#x0CAA-#x0CB3] | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | [#x0D05-#x0D0C] | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39] | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33] | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88] | #x0E8A | #x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7 | [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | #x0EBD | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69] | [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103] | [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112] | #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150 | [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163 | #x1165 | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173] | #x1175 | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | [#x11B7-#x11B8] | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9 | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15] | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D] | [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D] | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4] | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | [#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126 | [#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094] | [#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]
60     EOH
61    
62     $SET{Ideographic} = qq(#DESCRIPTION C<Ideographic> defined in XML 1.0 spec (#86, <http://www.w3.org/TR/REC-xml#NT-Ideographic>)
63     ).xml_ebnf_to_charlist (q([#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]));
64    
65     $SET{CombiningChar} = qq(#DESCRIPTION C<CombiningChar> defined in XML 1.0 spec (#87, <http://www.w3.org/TR/REC-xml#NT-CombiningChar>)
66     ).xml_ebnf_to_charlist (<<EOH);
67     [#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486] | [#x0591-#x05A1] | [#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] | #x05C4 | [#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] | [#x06DD-#x06DF] | [#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED] | [#x0901-#x0903] | #x093C | [#x093E-#x094C] | #x094D | [#x0951-#x0954] | [#x0962-#x0963] | [#x0981-#x0983] | #x09BC | #x09BE | #x09BF | [#x09C0-#x09C4] | [#x09C7-#x09C8] | [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 | #x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48] | [#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC | [#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03] | #x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D] | [#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] | [#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44] | [#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83] | [#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6] | [#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] | #x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] | #x0EB1 | [#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] | [#x0F18-#x0F19] | #x0F35 | #x0F37 | #x0F39 | #x0F3E | #x0F3F | [#x0F71-#x0F84] | [#x0F86-#x0F8B] | [#x0F90-#x0F95] | #x0F97 | [#x0F99-#x0FAD] | [#x0FB1-#x0FB7] | #x0FB9 | [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | #x3099 | #x309A
68     EOH
69    
70     $SET{Digit} = qq(#DESCRIPTION C<Digit> defined in XML 1.0 spec (#88, <http://www.w3.org/TR/REC-xml#NT-Digit>)
71     ).xml_ebnf_to_charlist (<<EOH);
72     [#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9] | [#x0966-#x096F] | [#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] | [#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F] | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]
73     EOH
74    
75     $SET{Extender} = qq(#DESCRIPTION C<Extender> defined in XML 1.0 spec (#89, <http://www.w3.org/TR/REC-xml#NT-Extender>)
76     ).xml_ebnf_to_charlist (<<EOH);
77     #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]
78     EOH
79    
80     $SET{Letter} = qq(#DESCRIPTION C<Letter> (::= C<BaseChar> / C<Ideographic>) defined in XML 1.0 spec (#84, <http://www.w3.org/TR/REC-xml#NT-Letter>)
81     );
82     for (split /\n/, $SET{BaseChar} . $SET{Ideographic}) {
83     $SET{Letter} .= $_ . "\n" unless /^\#/;
84     }
85    
86     $SET{NameChar} = <<EOH;
87     #DESCRIPTION Characters are elements of C<NameChar> defined in XML 1.0 spec (#4, <http://www.w3.org/TR/REC-xml#NT-NameChar>)
88     .-_:
89     EOH
90     $SET{_NameStartChar} = <<EOH;
91     #DESCRIPTION Characters can be the first char of C<Name> defined in XML 1.0 spec (#5, <http://www.w3.org/TR/REC-xml#NT-Name>)
92     _:
93     EOH
94     $SET{NCNameChar} = <<EOH;
95     #DESCRIPTION Characters are elements of C<NCNameChar> defined in Namespace in XML spec (#5, <http://www.w3.org/TR/REC-xml-names#NT-NCNameChar>)
96     .-_
97     EOH
98     $SET{_NCNameStartChar} = <<EOH;
99     #DESCRIPTION Characters can be the first char of C<NCName> defined in Namespace in XML spec (#4, <http://www.w3.org/TR/REC-xml-names#NT-NCName>)
100     _
101     EOH
102     for (split /\n/, $SET{Letter}) {
103     $SET{_NameStartChar} .= $_ . "\n" unless /^\#/;
104     $SET{NameChar} .= $_ . "\n" unless /^\#/;
105     $SET{_NCNameStartChar} .= $_ . "\n" unless /^\#/;
106     $SET{NCNameChar} .= $_ . "\n" unless /^\#/;
107     }
108     for (split /\n/, $SET{Digit} . $SET{CombiningChar} . $SET{Extender}) {
109     $SET{NameChar} .= $_ . "\n" unless /^\#/;
110     $SET{NCNameChar} .= $_ . "\n" unless /^\#/;
111     }
112    
113    
114     $SET{PubidChar} = <<'EOH';
115     #DESCRIPTION C<PubidChar> defined in XML 1.0 spec (#13, <http://www.w3.org/TR/REC-xml#NT-PubidChar>)
116     !000A
117     !000D
118     !0020
119     0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
120     -'()+,./:=?;!*#@$_%
121     EOH
122    
123     $SET{VersionNum} = <<'EOH';
124     #DESCRIPTION Characters are elements of C<VersionNum> defined in XML 1.0 spec (#26, <http://www.w3.org/TR/REC-xml#NT-PubidChar>)
125     0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
126     -_.:
127     EOH
128    
129 wakaba 1.2 $SET{_deprecated_noncharacter} = <<'EOH';
130     #DESCRIPTION Additional deprecated characters in XML 1.0 SE errata (E46, <http://www.w3.org/XML/xml-V10-2e-errata#E46>) ("noncharacter" in Unicode)
131     !007F 0084
132     !0086 009F
133     !FD00 FD0F
134     !1FFFE 1FFFF
135     !2FFFE 2FFFF
136     !3FFFE 3FFFF
137     !4FFFE 4FFFF
138     !5FFFE 5FFFF
139     !6FFFE 6FFFF
140     !7FFFE 7FFFF
141     !8FFFE 8FFFF
142     !9FFFE 9FFFF
143     !AFFFE AFFFF
144     !BFFFE BFFFF
145     !CFFFE CFFFF
146     !DFFFE DFFFF
147     !EFFFE EFFFF
148     !FFFFE FFFFF
149     !10FFFE 10FFFF
150     EOH
151    
152     $SET{_unicode_xml_not_suitable} = <<'EOH';
153     #DESCRIPTION Characters not suitable for use with markup (Table 3.1 of <http://www.w3.org/TR/unicode-xml/#Charlist>)
154     !2028 202E
155     !206A 206F
156     !FEFF
157     !FFF9 FFFC
158     !1D173 1D17A
159     !E0000 E007F
160     EOH
161    
162     $SET{_unicode_xml_suitable_format_character} = <<'EOH';
163     #DESCRIPTION Some characters that affect text format but are suitable for use with markup (Table 4.1 of <http://www.w3.org/TR/unicode-xml/#Charlist>)
164     !00A0
165     !00AD
166     !0363
167     !0600 0603
168     !06DD
169     !070C
170     !0F0C
171     !180B 180E
172     !200C 200F
173     !2011
174     !202F
175     !2044
176     !2060 2063
177     !2FF0 2FFB
178     !303E
179     !FE00 FE0F
180     !E0100 E01DF
181     EOH
182    
183 wakaba 1.1 sub xml_ebnf_to_charlist ($) {
184     my $r = '';
185     for my $p (split /\s*\|\s*/, shift) {
186     if ($p =~ /\[\#x([0-9A-Fa-f]+)-\#x([0-9A-Fa-f]+)\]/) {
187     $r .= uc "!$1 $2 \n";
188     } elsif ($p =~ /#x([0-9A-Fa-f]+)/) {
189     $r .= uc "!$1\n";
190     }
191     }
192     $r;
193     }
194    
195     &print_module;
196    
197 wakaba 1.2 ## $Date: 2003/04/24 22:34:02 $
198 wakaba 1.1 ### XML-src.upl ends here

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24