JAVA/JS/CPP: libphonenumber v6.1
[platform/upstream/libphonenumber.git] / resources / PhoneNumberMetadataForTesting.xml
1 <!-- Copyright (C) 2009 The Libphonenumber Authors
2
3      Licensed under the Apache License, Version 2.0 (the "License");
4      you may not use this file except in compliance with the License.
5      You may obtain a copy of the License at
6
7      http://www.apache.org/licenses/LICENSE-2.0
8
9      Unless required by applicable law or agreed to in writing, software
10      distributed under the License is distributed on an "AS IS" BASIS,
11      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12      See the License for the specific language governing permissions and
13      limitations under the License.
14
15      @author: Shaopeng Jia
16
17      Metadata on Phone Number Plan and formatting rules. This file is used
18      solely for the purpose of unittesting, so data in this file is not
19      necessarily consistent with that of PhoneNumberMetadata.xml.
20 -->
21
22 <phoneNumberMetadata>
23   <territories>
24     <!-- Andorra -->
25     <territory id="AD" countryCode="376" internationalPrefix="00">
26     </territory>
27
28     <!-- United Arab Emirates -->
29     <!-- Added since when formatting the number for mobile dialling we have special rules to handle
30          it. -->
31     <territory id="AE" countryCode="971" internationalPrefix="00">
32       <generalDesc>
33         <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
34         <possibleNumberPattern>\d{9}</possibleNumberPattern>
35       </generalDesc>
36       <uan>
37         <nationalNumberPattern>600\d{6}</nationalNumberPattern>
38         <exampleNumber>600123456</exampleNumber>
39       </uan>
40     </territory>
41
42     <!-- Angola -->
43     <!-- This country has been coopted to test the case of a national prefix with a non-numeric
44          symbol in it. It is also useful since it has no national prefix formatting rule. -->
45     <territory id="AO" countryCode="244" internationalPrefix="00" nationalPrefix="0~0">
46       <availableFormats>
47         <numberFormat pattern="(\d{3})(\d{3})(\d{3})">
48           <format>$1 $2 $3</format>
49         </numberFormat>
50       </availableFormats>
51       <generalDesc>
52         <nationalNumberPattern>[29]\d{8}</nationalNumberPattern>
53         <possibleNumberPattern>\d{9}</possibleNumberPattern>
54       </generalDesc>
55       <fixedLine>
56         <nationalNumberPattern>2\d(?:[26-9]\d|\d[26-9])\d{5}</nationalNumberPattern>
57         <exampleNumber>222123456</exampleNumber>
58       </fixedLine>
59       <mobile>
60         <!-- Expanded the 92 prefix possibilities to match numbers found online. -->
61         <nationalNumberPattern>9[1-3]\d{7}</nationalNumberPattern>
62         <exampleNumber>923123456</exampleNumber>
63       </mobile>
64     </territory>
65
66     <!-- Argentina -->
67     <territory id="AR" countryCode="54" internationalPrefix="00"
68                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"
69                nationalPrefixForParsing="0(?:(11|343|3715)15)?"
70                nationalPrefixTransformRule="9$1">
71       <!-- Note in nationalPrefixForParsing, the areacode (such as 11, 343, etc.), when present in
72            front of carrier selection code 15, is captured to replace $1 in
73            nationalPrefixTransformRule -->
74       <availableFormats>
75         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
76           <leadingDigits>11</leadingDigits>
77           <format>$1 $2-$3</format>
78         </numberFormat>
79         <numberFormat pattern="(\d{4})(\d{2})(\d{4})">
80           <leadingDigits>1[02-9]|[23]</leadingDigits>
81           <format>$1 $2-$3</format>
82         </numberFormat>
83         <numberFormat pattern="(9)(11)(\d{4})(\d{4})">
84           <leadingDigits>911</leadingDigits>
85           <format>$2 15 $3-$4</format>
86           <intlFormat>$1 $2 $3 $4</intlFormat>
87         </numberFormat>
88         <numberFormat pattern="(9)(\d{4})(\d{2})(\d{4})"
89           carrierCodeFormattingRule="$NP$FG $CC">
90           <leadingDigits>9(?:1[02-9]|[23])</leadingDigits>
91           <format>$2 $3-$4</format>
92           <intlFormat>$1 $2 $3 $4</intlFormat>
93         </numberFormat>
94         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
95           <leadingDigits>[68]</leadingDigits>
96           <format>$1-$2-$3</format>
97         </numberFormat>
98       </availableFormats>
99       <generalDesc>
100         <nationalNumberPattern>[1-3689]\d{9,10}</nationalNumberPattern>
101         <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
102       </generalDesc>
103       <fixedLine>
104          <nationalNumberPattern>[1-3]\d{9}</nationalNumberPattern>
105          <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
106       </fixedLine>
107       <mobile>
108         <nationalNumberPattern>9\d{10}|[1-3]\d{9}</nationalNumberPattern>
109         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
110       </mobile>
111       <tollFree>
112         <nationalNumberPattern>80\d{8}</nationalNumberPattern>
113         <possibleNumberPattern>\d{10}</possibleNumberPattern>
114       </tollFree>
115       <premiumRate>
116         <nationalNumberPattern>6(0\d|10)\d{7}</nationalNumberPattern>
117         <possibleNumberPattern>\d{10}</possibleNumberPattern>
118       </premiumRate>
119     </territory>
120
121     <!-- Australia -->
122     <!-- Country calling code shared with Cocos Islands (CC) and Christmas Islands (CX) -->
123     <territory id="AU" countryCode="61" internationalPrefix="001[12]"
124                nationalPrefix="0" preferredInternationalPrefix="0011"
125                nationalPrefixFormattingRule="$NP$FG">
126       <availableFormats>
127         <numberFormat nationalPrefixFormattingRule="$FG"
128           pattern="(\d{4})(\d{3})(\d{3})" >
129           <leadingDigits>1</leadingDigits>
130           <format>$1 $2 $3</format>
131         </numberFormat>
132         <numberFormat pattern="(\d{1})(\d{4})(\d{4})">
133           <leadingDigits>[2-478]</leadingDigits>
134           <format>$1 $2 $3</format>
135         </numberFormat>
136       </availableFormats>
137       <generalDesc >
138         <nationalNumberPattern>[1-578]\d{4,14}</nationalNumberPattern>
139         <possibleNumberPattern>\d{5,15}</possibleNumberPattern>
140       </generalDesc>
141       <fixedLine>
142         <nationalNumberPattern>[2378]\d{8}</nationalNumberPattern>
143         <possibleNumberPattern>\d{9}</possibleNumberPattern>
144       </fixedLine>
145       <mobile>
146         <nationalNumberPattern>4\d{8}</nationalNumberPattern>
147         <possibleNumberPattern>\d{9}</possibleNumberPattern>
148       </mobile>
149       <tollFree>
150         <nationalNumberPattern>1800\d{6}</nationalNumberPattern>
151         <possibleNumberPattern>\d{10}</possibleNumberPattern>
152       </tollFree>
153       <premiumRate>
154         <nationalNumberPattern>190[0126]\d{6}</nationalNumberPattern>
155         <possibleNumberPattern>\d{10}</possibleNumberPattern>
156       </premiumRate>
157     </territory>
158
159     <!-- Brazil -->
160     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
161          recognised by the library. -->
162     <territory id="BR" countryCode="55">
163     </territory>
164
165     <!-- Bahamas -->
166     <territory id="BS" countryCode="1" internationalPrefix="011"
167                nationalPrefix="1">
168       <generalDesc>
169         <nationalNumberPattern>(242|8(00|66|77|88)|900)\d{7}</nationalNumberPattern>
170         <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
171       </generalDesc>
172       <fixedLine>
173         <nationalNumberPattern>242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[3-57]|9[2-5])|4(?:2[237]|51|64|77)|502|636|702)\d{4}</nationalNumberPattern>
174       </fixedLine>
175       <mobile>
176         <nationalNumberPattern>242(357|359|457|557)\d{4}</nationalNumberPattern>
177         <possibleNumberPattern>\d{10}</possibleNumberPattern>
178       </mobile>
179       <tollFree>
180         <nationalNumberPattern>8(00|66|77|88)\d{7}</nationalNumberPattern>
181         <possibleNumberPattern>\d{10}</possibleNumberPattern>
182       </tollFree>
183       <premiumRate>
184         <nationalNumberPattern>900\d{7}</nationalNumberPattern>
185         <possibleNumberPattern>\d{10}</possibleNumberPattern>
186       </premiumRate>
187     </territory>
188
189     <!-- Belarus -->
190     <!-- This country has been coopted to test the case of a national prefix formatting rule with a
191          space in it and the case where a number happens to begin with the national prefix, but
192          would become too short if the prefix is stripped. -->
193     <territory id="BY" countryCode="375" internationalPrefix="810" nationalPrefix="8"
194                nationalPrefixForParsing="80?|99999" nationalPrefixFormattingRule="$NP $FG">
195       <availableFormats>
196         <!-- We make some bogus formatting templates that differ only in length to check that
197              switching formatting patterns works as expected.-->
198         <numberFormat pattern="(\d{4})">
199           <leadingDigits>[1-8]</leadingDigits>
200           <format>$1</format>
201         </numberFormat>
202         <!-- This pattern has an override to remove the space after the national prefix. -->
203         <numberFormat pattern="(\d{2})(\d{3})" nationalPrefixFormattingRule="$NP$FG">
204           <leadingDigits>[1-8]</leadingDigits>
205           <format>$1 $2</format>
206         </numberFormat>
207         <numberFormat pattern="(\d{3})(\d{3})">
208           <leadingDigits>[1-8]</leadingDigits>
209           <format>$1 $2</format>
210         </numberFormat>
211       </availableFormats>
212       <generalDesc>
213         <!-- This numbering plan is completely bogus, but is used to test the AYTF logic. For that
214              reason, it is kept very simple. -->
215         <nationalNumberPattern>[1-9]\d{5}</nationalNumberPattern>
216         <possibleNumberPattern>\d{6}</possibleNumberPattern>
217       </generalDesc>
218       <fixedLine>
219         <exampleNumber>112345</exampleNumber>
220       </fixedLine>
221     </territory>
222
223     <!-- Cocos Islands -->
224     <!-- Country calling code shared with Australia. -->
225     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
226          recognised by the library. -->
227     <territory id="CC" countryCode="61">
228     </territory>
229
230     <!-- China -->
231     <!-- Used to test as-you-type-formatter with complicated number format patterns. -->
232     <territory id="CN" countryCode="86">
233       <availableFormats>
234         <numberFormat nationalPrefixFormattingRule="$NP$FG" pattern="(\d{3})(\d{5,6})"
235                       carrierCodeFormattingRule="$CC $FG">
236           <leadingDigits>[3-9]</leadingDigits>
237           <leadingDigits>[3-9]\d{2}[19]</leadingDigits>
238           <leadingDigits>
239             [3-9]\d{2}(?:
240               10|
241               95
242             )
243           </leadingDigits>
244           <format>$1 $2</format>
245         </numberFormat>
246       </availableFormats>
247     </territory>
248     
249     <!-- Christmas Islands -->
250     <!-- Country calling code shared with Australia. -->
251     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
252          recognised by the library. -->
253     <territory id="CX" countryCode="61">
254     </territory>
255
256     <!-- Germany -->
257     <territory id="DE" countryCode="49" internationalPrefix="00"
258                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
259       <availableFormats>
260         <numberFormat pattern="(\d{3})(\d{3,8})">
261           <leadingDigits>2|3[3-9]|906|[4-9][1-9]1</leadingDigits>
262           <format>$1 $2</format>
263         </numberFormat>
264         <numberFormat pattern="(\d{2})(\d{4,11})">
265           <leadingDigits>[34]0|[68]9</leadingDigits>
266           <format>$1/$2</format>
267         </numberFormat>
268         <!-- Extra fictional pattern for shorter numbers with the same prefixes as the following
269              pattern, to illustrate the problem the AYTF has with real patterns that share this
270              property. -->
271         <numberFormat pattern="([4-9]\d)(\d{2})">
272           <leadingDigits>[4-9]</leadingDigits>
273           <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits>
274           <format>$1 $2</format>
275         </numberFormat>
276         <numberFormat pattern="([4-9]\d{3})(\d{2,7})">
277           <leadingDigits>[4-9]</leadingDigits>
278           <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits>
279           <format>$1 $2</format>
280         </numberFormat>
281         <numberFormat pattern="(\d{3})(\d{1})(\d{6})">
282           <leadingDigits>800</leadingDigits>
283           <format>$1 $2 $3</format>
284         </numberFormat>
285         <numberFormat pattern="(\d{3})(\d{3,4})(\d{4})">
286           <leadingDigits>900</leadingDigits>
287           <format>$1 $2 $3</format>
288         </numberFormat>
289       </availableFormats>
290       <generalDesc>
291         <nationalNumberPattern>\d{4,14}</nationalNumberPattern>
292         <possibleNumberPattern>\d{2,14}</possibleNumberPattern>
293       </generalDesc>
294       <fixedLine>
295         <nationalNumberPattern>(?:[24-6]\d{2}|3[03-9]\d|[789](?:[1-9]\d|0[2-9]))\d{1,8}</nationalNumberPattern>
296         <exampleNumber>30123456</exampleNumber>
297       </fixedLine>
298       <mobile>
299         <nationalNumberPattern>1(5\d{9}|7\d{8}|6[02]\d{8}|63\d{7})</nationalNumberPattern>
300         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
301       </mobile>
302       <tollFree>
303         <nationalNumberPattern>800\d{7}</nationalNumberPattern>
304         <possibleNumberPattern>\d{10}</possibleNumberPattern>
305       </tollFree>
306       <premiumRate>
307         <nationalNumberPattern>900([135]\d{6}|9\d{7})</nationalNumberPattern>
308         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
309       </premiumRate>
310     </territory>
311
312     <!-- France -->
313     <territory id="FR" countryCode="33" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
314       <availableFormats>
315         <!-- We use this to test the phone number matcher. For our test-case, the formatting
316              pattern must have as the first group a sub-part of the country calling code,
317              and have a national prefix. This corresponds to the test number +33 3 34 2312. -->
318         <numberFormat pattern="(\d)(\d{2})(\d{2})(\d{2})">
319           <leadingDigits>3</leadingDigits>
320           <format>$1 $2 $3 $4</format>
321         </numberFormat>
322       </availableFormats>
323       <generalDesc>
324         <nationalNumberPattern>3\d{6}</nationalNumberPattern>
325         <possibleNumberPattern>\d{7}</possibleNumberPattern>
326       </generalDesc>
327     </territory>
328
329     <!-- United Kingdom -->
330     <territory id="GB" countryCode="44" internationalPrefix="00"
331                nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)"
332                mobileNumberPortableRegion="true">
333       <availableFormats>
334         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
335           <leadingDigits>[1-59]|[78]0</leadingDigits>
336           <format>$1 $2 $3</format>
337         </numberFormat>
338         <numberFormat pattern="(\d)(\d{3})(\d{3})(\d{3})">
339           <leadingDigits>6</leadingDigits>
340           <format>$1 $2 $3 $4</format>
341         </numberFormat>
342         <numberFormat pattern="(\d{4})(\d{3})(\d{3})">
343           <leadingDigits>7[1-57-9]</leadingDigits>
344           <format>$1 $2 $3</format>
345         </numberFormat>
346         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
347           <leadingDigits>8[47]</leadingDigits>
348           <format>$1 $2 $3</format>
349         </numberFormat>
350       </availableFormats>
351       <generalDesc>
352         <nationalNumberPattern>\d{10}</nationalNumberPattern>
353         <possibleNumberPattern>\d{6,10}</possibleNumberPattern>
354       </generalDesc>
355       <fixedLine>
356         <nationalNumberPattern>[1-6]\d{9}</nationalNumberPattern>
357       </fixedLine>
358       <mobile>
359         <nationalNumberPattern>7[1-57-9]\d{8}</nationalNumberPattern>
360         <possibleNumberPattern>\d{10}</possibleNumberPattern>
361       </mobile>
362       <pager>
363         <nationalNumberPattern>76\d{8}</nationalNumberPattern>
364         <possibleNumberPattern>\d{10}</possibleNumberPattern>
365       </pager>
366       <tollFree>
367         <nationalNumberPattern>80\d{8}</nationalNumberPattern>
368         <possibleNumberPattern>\d{10}</possibleNumberPattern>
369       </tollFree>
370       <premiumRate>
371         <nationalNumberPattern>9[018]\d{8}</nationalNumberPattern>
372         <possibleNumberPattern>\d{10}</possibleNumberPattern>
373       </premiumRate>
374       <sharedCost>
375         <nationalNumberPattern>8(?:4[3-5]|7[0-2])\d{7}</nationalNumberPattern>
376         <possibleNumberPattern>\d{10}</possibleNumberPattern>
377       </sharedCost>
378       <voip>
379         <nationalNumberPattern>56\d{8}</nationalNumberPattern>
380         <possibleNumberPattern>\d{10}</possibleNumberPattern>
381       </voip>
382       <personalNumber>
383         <nationalNumberPattern>70\d{8}</nationalNumberPattern>
384         <possibleNumberPattern>\d{10}</possibleNumberPattern>
385       </personalNumber>
386     </territory>
387
388     <!-- Guernsey -->
389     <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be
390          recognised by the library, and it must be the same as that of the United Kingdom. -->
391     <territory id="GG" countryCode="44">
392     </territory>
393
394     <!-- Hungary -->
395     <!-- This country has special logic in formatNumberForMobileDialing which must be tested. -->
396     <territory id="HU" countryCode="36" nationalPrefix="06">
397       <generalDesc>
398         <nationalNumberPattern>30\d{7}</nationalNumberPattern>
399         <possibleNumberPattern>\d{9}</possibleNumberPattern>
400       </generalDesc>
401       <mobile>
402         <nationalNumberPattern>30\d{7}</nationalNumberPattern>
403         <possibleNumberPattern>\d{9}</possibleNumberPattern>
404       </mobile>
405     </territory>
406
407     <!-- Italy -->
408     <!-- http://en.wikipedia.org/wiki/%2B39 -->
409     <territory id="IT" countryCode="39" internationalPrefix="00" leadingZeroPossible="true">
410       <availableFormats>
411         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
412           <leadingDigits>0[26]</leadingDigits>
413           <format>$1 $2 $3</format>
414         </numberFormat>
415         <numberFormat pattern="(\d{3})(\d{4})(\d{3,4})">
416           <leadingDigits>0[13-57-9]</leadingDigits>
417           <format>$1 $2 $3</format>
418         </numberFormat>
419         <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
420           <leadingDigits>3</leadingDigits>
421           <format>$1 $2 $3</format>
422         </numberFormat>
423         <numberFormat pattern="(\d{3})(\d{3,6})">
424           <leadingDigits>8</leadingDigits>
425           <format>$1 $2</format>
426         </numberFormat>
427       </availableFormats>
428       <generalDesc>
429         <nationalNumberPattern>[0389]\d{5,10}</nationalNumberPattern>
430         <possibleNumberPattern>\d{6,11}</possibleNumberPattern>
431       </generalDesc>
432       <fixedLine>
433         <nationalNumberPattern>0\d{9,10}</nationalNumberPattern>
434         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
435       </fixedLine>
436       <mobile>
437         <nationalNumberPattern>3\d{8,9}</nationalNumberPattern>
438         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
439       </mobile>
440       <tollFree>
441         <nationalNumberPattern>80(?:0\d{6}|3\d{3})</nationalNumberPattern>
442         <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
443       </tollFree>
444       <premiumRate>
445         <nationalNumberPattern>89(?:2\d{3}|9\d{6})</nationalNumberPattern>
446         <possibleNumberPattern>\d{6,9}</possibleNumberPattern>
447       </premiumRate>
448     </territory>
449
450     <!-- Japan -->
451     <!-- The metadata here is added to unit test AsYouTypeFormatter for JP, which requires switching
452          patterns as digits beyond the third one are entered. As a result, only a few fake
453          formatting rules are added. -->
454     <territory id="JP" countryCode="81" internationalPrefix="010"
455                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG" leadingZeroPossible="true">
456       <availableFormats>
457         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
458           <leadingDigits>[57-9]0</leadingDigits>
459           <format>$1 $2 $3</format>
460         </numberFormat>
461         <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})">
462           <leadingDigits>[57-9]0</leadingDigits>
463           <format>$1 $2 $3 $4</format>
464         </numberFormat>
465         <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
466           <leadingDigits>111|222|333</leadingDigits>
467           <leadingDigits>(?:111|222|333)1</leadingDigits>
468           <leadingDigits>(?:111|222|333)11</leadingDigits>
469           <format>$1 $2 $3</format>
470         </numberFormat>
471         <numberFormat pattern="(\d{4})(\d)(\d{4})">
472           <leadingDigits>222|333</leadingDigits>
473           <leadingDigits>2221|3332</leadingDigits>
474           <leadingDigits>22212|3332</leadingDigits>
475           <leadingDigits>222120|3332</leadingDigits>
476           <format>$1 $2 $3</format>
477         </numberFormat>
478         <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
479           <leadingDigits>[23]</leadingDigits>
480           <format>$1 $2 $3</format>
481         </numberFormat>
482         <numberFormat pattern="(\d{3})(\d{4})">
483           <leadingDigits>077</leadingDigits>
484           <format>$1-$2</format>
485         </numberFormat>
486         <!-- The following numberFormat is added to test that the format containing the star sign is
487              not used by the AYTF. -->
488         <numberFormat nationalPrefixFormattingRule="$FG" pattern="(\d{4})">
489           <leadingDigits>[23]</leadingDigits>
490           <format>*$1</format>
491         </numberFormat>
492       </availableFormats>
493       <noInternationalDialling>
494         <nationalNumberPattern>[23]\d{3}</nationalNumberPattern>
495         <possibleNumberPattern>\d{4}</possibleNumberPattern>
496       </noInternationalDialling>
497       <generalDesc>
498         <nationalNumberPattern>07\d{5}|[1-357-9]\d{3,10}</nationalNumberPattern>
499         <possibleNumberPattern>\d{4,11}</possibleNumberPattern>
500       </generalDesc>
501       <tollFree>
502         <nationalNumberPattern>0777[01]\d{2}</nationalNumberPattern>
503         <possibleNumberPattern>\d{7}</possibleNumberPattern>
504         <exampleNumber>0777012</exampleNumber>
505       </tollFree>
506     </territory>
507
508     <!-- Korea (Rep. of) -->
509     <!-- http://www.itu.int/oth/T0202000072/en -->
510     <!-- http://en.wikipedia.org/wiki/%2B82 -->
511     <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2349 -->
512     <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2240 -->
513     <!-- http://www.telecentro.co.kr/sub/index.php?job=detail&ebcf_id=faq&page=1&mid=0503&eb_seq=36 -->
514     <!-- Exceptions :
515         internationalPrefix
516             0031, 0033, 0071, 0073 - Special services of KT and DACOM, ignorable
517         nationalPrefix
518             1[4-6]XX-YYYY - Country-wide common number services, display as it is without hyphens -->
519     <territory id="KR" countryCode="82" internationalPrefix="00(?:[124-68]|[37]\d{2})"
520                nationalPrefix="0" nationalPrefixForParsing="0(8[1-46-8]|85\d{2})?"
521                nationalPrefixFormattingRule="$NP$FG">
522       <availableFormats>
523         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
524           <leadingDigits>1(?:0|1[19]|[69]9|5[458])|[57]0</leadingDigits>
525           <leadingDigits>1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0</leadingDigits>
526           <format>$1-$2-$3</format>
527         </numberFormat>
528         <numberFormat pattern="(\d{2})(\d{3})(\d{4})">
529           <leadingDigits>1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]</leadingDigits>
530           <leadingDigits>1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]</leadingDigits>
531           <format>$1-$2-$3</format>
532         </numberFormat>
533         <numberFormat pattern="(\d{3})(\d)(\d{4})">
534           <leadingDigits>131</leadingDigits>
535           <leadingDigits>1312</leadingDigits>
536           <format>$1-$2-$3</format>
537         </numberFormat>
538         <numberFormat pattern="(\d{3})(\d{2})(\d{4})">
539           <leadingDigits>131</leadingDigits>
540           <leadingDigits>131[13-9]</leadingDigits>
541           <format>$1-$2-$3</format>
542         </numberFormat>
543         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
544           <leadingDigits>13[2-9]</leadingDigits>
545           <format>$1-$2-$3</format>
546         </numberFormat>
547         <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})">
548           <leadingDigits>30</leadingDigits>
549           <format>$1-$2-$3-$4</format>
550         </numberFormat>
551         <numberFormat pattern="(\d)(\d{4})(\d{4})">
552           <leadingDigits>2(?:[26]|3[0-467])</leadingDigits>
553           <leadingDigits>2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))</leadingDigits>
554           <format>$1-$2-$3</format>
555         </numberFormat>
556         <numberFormat pattern="(\d)(\d{3})(\d{4})">
557           <leadingDigits>2(?:3[0-35-9]|[457-9])</leadingDigits>
558           <leadingDigits>2(?:3(?:0[02-9]|1[0-36-9]|2[02-6]|3[0-8]|6[0-589]|7[1-69]|[589])|[457-9])</leadingDigits>
559           <format>$1-$2-$3</format>
560         </numberFormat>
561         <numberFormat pattern="(\d)(\d{3})">
562           <leadingDigits>21[0-46-9]</leadingDigits>
563           <leadingDigits>21(?:[0-247-9]|3[124]|6[1269])</leadingDigits>
564           <format>$1-$2</format>
565         </numberFormat>
566         <numberFormat pattern="(\d)(\d{4})">
567           <leadingDigits>21[36]</leadingDigits>
568           <leadingDigits>21(?:3[035-9]|6[03-578])</leadingDigits>
569           <format>$1-$2</format>
570         </numberFormat>
571         <numberFormat pattern="(\d{2})(\d{3})">
572           <leadingDigits>[3-6][1-9]1</leadingDigits>
573           <leadingDigits>[3-6][1-9]1(?:[0-46-9])</leadingDigits>
574           <leadingDigits>[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])</leadingDigits>
575           <format>$1-$2</format>
576         </numberFormat>
577         <numberFormat pattern="(\d{2})(\d{4})">
578           <leadingDigits>[3-6][1-9]1</leadingDigits>
579           <leadingDigits>[3-6][1-9]1[36]</leadingDigits>
580           <leadingDigits>[3-6][1-9]1(?:3[035-9]|6[03-578])</leadingDigits>
581           <format>$1-$2</format>
582         </numberFormat>
583       </availableFormats>
584       <generalDesc>
585         <nationalNumberPattern>[1-7]\d{3,9}|8\d{8}</nationalNumberPattern>
586         <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
587       </generalDesc>
588       <fixedLine>
589         <nationalNumberPattern>(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\d{2,3}|[2-9]\d{6,7})</nationalNumberPattern>
590         <possibleNumberPattern>\d{4,10}</possibleNumberPattern>
591         <exampleNumber>22123456</exampleNumber>
592       </fixedLine>
593       <mobile>
594         <nationalNumberPattern>1[0-25-9]\d{7,8}</nationalNumberPattern>
595         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
596         <exampleNumber>1023456789</exampleNumber>
597       </mobile>
598       <tollFree>
599         <nationalNumberPattern>80\d{7}</nationalNumberPattern>
600         <possibleNumberPattern>\d{9}</possibleNumberPattern>
601         <exampleNumber>801234567</exampleNumber>
602       </tollFree>
603       <premiumRate>
604         <nationalNumberPattern>60[2-9]\d{6}</nationalNumberPattern>
605         <possibleNumberPattern>\d{9}</possibleNumberPattern>
606         <exampleNumber>602345678</exampleNumber>
607       </premiumRate>
608       <personalNumber>
609         <nationalNumberPattern>50\d{8}</nationalNumberPattern>
610         <possibleNumberPattern>\d{10}</possibleNumberPattern>
611         <exampleNumber>5012345678</exampleNumber>
612       </personalNumber>
613       <voip>
614         <nationalNumberPattern>70\d{8}</nationalNumberPattern>
615         <possibleNumberPattern>\d{10}</possibleNumberPattern>
616         <exampleNumber>7012345678</exampleNumber>
617       </voip>
618     </territory>
619
620     <!-- Mexico -->
621     <territory id="MX" countryCode="52" internationalPrefix="00"
622                nationalPrefix="01" nationalPrefixForParsing="01|04[45](\d{10})"
623                nationalPrefixTransformRule="1$1" nationalPrefixFormattingRule="$NP $FG"
624                nationalPrefixOptionalWhenFormatting="true">
625       <availableFormats>
626         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
627           <leadingDigits>[89]00</leadingDigits>
628           <format>$1 $2 $3</format>
629         </numberFormat>
630         <numberFormat pattern="(\d{2})(\d{4})(\d{4})">
631           <leadingDigits>33|55|81</leadingDigits>
632           <format>$1 $2 $3</format>
633         </numberFormat>
634         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
635           <leadingDigits>[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]</leadingDigits>
636           <format>$1 $2 $3</format>
637         </numberFormat>
638         <numberFormat nationalPrefixFormattingRule="$FG" pattern="(1)(\d{2})(\d{4})(\d{4})">
639           <leadingDigits>1(?:33|55|81)</leadingDigits>
640           <format>045 $2 $3 $4</format>
641           <intlFormat>$1 $2 $3 $4</intlFormat>
642         </numberFormat>
643         <numberFormat nationalPrefixFormattingRule="$FG" pattern="(1)(\d{3})(\d{3})(\d{4})">
644           <leadingDigits>1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])</leadingDigits>
645           <format>045 $2 $3 $4</format>
646           <intlFormat>$1 $2 $3 $4</intlFormat>
647         </numberFormat>
648       </availableFormats>
649       <generalDesc>
650         <nationalNumberPattern>[1-9]\d{9,10}</nationalNumberPattern>
651         <possibleNumberPattern>\d{7,11}</possibleNumberPattern>
652       </generalDesc>
653       <fixedLine>
654         <nationalNumberPattern>[2-9]\d{9}</nationalNumberPattern>
655         <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
656       </fixedLine>
657       <mobile>
658         <nationalNumberPattern>1\d{10}</nationalNumberPattern>
659         <possibleNumberPattern>\d{11}</possibleNumberPattern>
660       </mobile>
661       <tollFree>
662         <nationalNumberPattern>800\d{7}</nationalNumberPattern>
663         <possibleNumberPattern>\d{10}</possibleNumberPattern>
664       </tollFree>
665       <premiumRate>
666         <nationalNumberPattern>900\d{7}</nationalNumberPattern>
667         <possibleNumberPattern>\d{10}</possibleNumberPattern>
668       </premiumRate>
669     </territory>
670
671     <!-- New Zealand -->
672     <territory id="NZ" countryCode="64" internationalPrefix="00"
673                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
674       <availableFormats>
675         <numberFormat pattern="(\d)(\d{3})(\d{4})">
676           <leadingDigits>24|[34679]</leadingDigits>
677           <format>$1-$2 $3</format>
678         </numberFormat>
679         <numberFormat pattern="(\d)(\d{3})(\d{3,5})">
680           <leadingDigits>2[179]</leadingDigits>
681           <format>$1-$2 $3</format>
682         </numberFormat>
683         <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})">
684           <leadingDigits>[89]</leadingDigits>
685           <format>$1 $2 $3</format>
686         </numberFormat>
687       </availableFormats>
688       <generalDesc>
689         <nationalNumberPattern>
690           [289]\d{7,9}|
691           [3-7]\d{7}
692         </nationalNumberPattern>
693         <possibleNumberPattern>\d{7,10}</possibleNumberPattern>
694       </generalDesc>
695       <fixedLine>
696         <nationalNumberPattern>24099\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\d{6}</nationalNumberPattern>
697         <possibleNumberPattern>\d{7,8}</possibleNumberPattern>
698       </fixedLine>
699       <mobile>
700         <nationalNumberPattern>2(?:[027]\d{7}|9\d{6,7}|1(?:0\d{5,7}|[12]\d{5,6}|[3-9]\d{5})|4[1-9]\d{6}|8\d{7,8})</nationalNumberPattern>
701         <possibleNumberPattern>\d{8,10}</possibleNumberPattern>
702       </mobile>
703       <tollFree>
704         <nationalNumberPattern>800\d{6,7}</nationalNumberPattern>
705         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
706       </tollFree>
707       <premiumRate>
708         <nationalNumberPattern>900\d{6,7}</nationalNumberPattern>
709         <possibleNumberPattern>\d{9,10}</possibleNumberPattern>
710       </premiumRate>
711     </territory>
712
713     <!-- Poland -->
714     <!-- http://en.wikipedia.org/wiki/%2B48 -->
715     <territory id="PL" countryCode="48" internationalPrefix="00"
716                nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
717       <availableFormats>
718         <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})">
719           <format>$1 $2 $3 $4</format>
720         </numberFormat>
721       </availableFormats>
722       <generalDesc>
723         <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern>
724         <possibleNumberPattern>\d{9}</possibleNumberPattern>
725       </generalDesc>
726       <mobile>
727         <nationalNumberPattern>(?:5[01]|6[069]|7[289]|88)\d{7}</nationalNumberPattern>
728       </mobile>
729       <tollFree>
730         <nationalNumberPattern>800\d{6}</nationalNumberPattern>
731       </tollFree>
732       <premiumRate>
733         <nationalNumberPattern>70\d{7}</nationalNumberPattern>
734       </premiumRate>
735     </territory>
736
737     <!-- Réunion (French Departments and Territories in the Indian Ocean) -->
738     <!-- Note this shares the same country code as La Mayotte and French
739     Southern Territories, and the formatting patterns here are used by all of
740     them. This is present to test leadingDigits. -->
741     <territory id="RE" countryCode="262" leadingDigits="262|6(?:9[23]|47)|8"
742                internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
743       <availableFormats>
744         <numberFormat pattern="([268]\d{2})(\d{2})(\d{2})(\d{2})">
745           <format>$1 $2 $3 $4</format>
746         </numberFormat>
747       </availableFormats>
748       <generalDesc>
749         <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
750         <possibleNumberPattern>\d{9}</possibleNumberPattern>
751       </generalDesc>
752       <fixedLine>
753         <!-- 0876 numbers are mentioned in the plan, but none in use can be
754         found. -->
755         <nationalNumberPattern>262\d{6}</nationalNumberPattern>
756         <exampleNumber>262161234</exampleNumber>
757       </fixedLine>
758       <mobile>
759         <nationalNumberPattern>6(?:9[23]|47)\d{6}</nationalNumberPattern>
760         <possibleNumberPattern>\d{9}</possibleNumberPattern>
761         <exampleNumber>692123456</exampleNumber>
762       </mobile>
763       <!-- 08* Numbers in Réunion are the same as those valid in France. -->
764       <tollFree>
765         <nationalNumberPattern>80\d{7}</nationalNumberPattern>
766         <exampleNumber>801234567</exampleNumber>
767       </tollFree>
768       <premiumRate>
769         <nationalNumberPattern>8(?:1[01]|2[0156]|84|9[0-37-9])\d{6}</nationalNumberPattern>
770         <exampleNumber>810123456</exampleNumber>
771       </premiumRate>
772     </territory>
773
774     <!-- Singapore -->
775     <!-- http://www.ida.gov.sg/policies%20and%20regulation/20060508120124.aspx -->
776     <!-- For testing the AYTF with long NDDs, "777777" is added as a possible national prefix. -->
777     <territory id="SG" countryCode="65" internationalPrefix="0[0-3][0-9]"
778                nationalPrefixForParsing="777777">
779       <availableFormats>
780         <numberFormat pattern="(\d{4})(\d{4})">
781           <leadingDigits>[369]|8[1-9]</leadingDigits>
782           <format>$1 $2</format>
783         </numberFormat>
784         <numberFormat pattern="(\d{4})(\d{3})(\d{4})">
785           <leadingDigits>1[89]</leadingDigits>
786           <format>$1 $2 $3</format>
787         </numberFormat>
788         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
789           <leadingDigits>800</leadingDigits>
790           <format>$1 $2 $3</format>
791         </numberFormat>
792       </availableFormats>
793       <generalDesc>
794         <nationalNumberPattern>[13689]\d{7,10}</nationalNumberPattern>
795         <!-- This specific pattern with the | is used to unit-test IsPossibleNumberWithReason. -->
796         <possibleNumberPattern>
797           \d{8}|
798           \d{10,11}
799         </possibleNumberPattern>
800       </generalDesc>
801       <fixedLine>
802         <nationalNumberPattern>[36]\d{7}</nationalNumberPattern>
803         <possibleNumberPattern>\d{8}</possibleNumberPattern>
804       </fixedLine>
805       <mobile>
806         <nationalNumberPattern>[89]\d{7}</nationalNumberPattern>
807         <possibleNumberPattern>\d{8}</possibleNumberPattern>
808       </mobile>
809       <tollFree>
810         <nationalNumberPattern>1?800\d{7}</nationalNumberPattern>
811         <possibleNumberPattern>\d{10,11}</possibleNumberPattern>
812       </tollFree>
813       <premiumRate>
814         <nationalNumberPattern>1900\d{7}</nationalNumberPattern>
815         <possibleNumberPattern>\d{11}</possibleNumberPattern>
816       </premiumRate>
817     </territory>
818
819     <!-- United States -->
820     <!-- http://www.nanpa.com/reports/reports_npa.html -->
821     <!-- For testing purposes, numbers starting with 24 are not considered US numbers.-->
822     <territory id="US" countryCode="1" internationalPrefix="011"
823                preferredExtnPrefix=" extn. " nationalPrefix="1"
824                mainCountryForCode="true" nationalPrefixOptionalWhenFormatting="true"
825                mobileNumberPortableRegion="true">
826       <availableFormats>
827         <numberFormat pattern="(\d{3})(\d{4})">
828           <format>$1 $2</format>
829           <intlFormat>NA</intlFormat>
830        </numberFormat>
831         <numberFormat pattern="(\d{3})(\d{3})(\d{4})">
832           <format>$1 $2 $3</format>
833         </numberFormat>
834       </availableFormats>
835       <generalDesc>
836         <!-- Numbers beginning with 7 are excluded for testing purposes only. -->
837         <nationalNumberPattern>[13-689]\d{9}|2[0-35-9]\d{8}</nationalNumberPattern>
838         <possibleNumberPattern>\d{7}(?:\d{3})?</possibleNumberPattern>
839         <exampleNumber>1234567890</exampleNumber>
840       </generalDesc>
841       <noInternationalDialling>
842         <!-- This range is added for testing purposes only. -->
843         <nationalNumberPattern>800\d{7}</nationalNumberPattern>
844         <possibleNumberPattern>\d{10}</possibleNumberPattern>
845       </noInternationalDialling>
846       <tollFree>
847         <nationalNumberPattern>8(?:00|66|77|88)\d{7}</nationalNumberPattern>
848         <possibleNumberPattern>\d{10}</possibleNumberPattern>
849       </tollFree>
850       <premiumRate>
851         <nationalNumberPattern>900\d{7}</nationalNumberPattern>
852         <possibleNumberPattern>\d{10}</possibleNumberPattern>
853       </premiumRate>
854     </territory>
855
856     <!-- Mayotte -->
857     <territory id="YT" countryCode="262" leadingDigits="269|639"
858                internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG">
859       <!-- Formatting as per La Réunion. -->
860       <generalDesc>
861         <nationalNumberPattern>[268]\d{8}</nationalNumberPattern>
862         <possibleNumberPattern>\d{9}</possibleNumberPattern>
863       </generalDesc>
864       <fixedLine>
865         <nationalNumberPattern>2696[0-4]\d{4}</nationalNumberPattern>
866         <exampleNumber>269601234</exampleNumber>
867       </fixedLine>
868       <mobile>
869         <nationalNumberPattern>639\d{6}</nationalNumberPattern>
870         <exampleNumber>639123456</exampleNumber>
871       </mobile>
872       <!-- Same as in France. -->
873       <tollFree>
874         <nationalNumberPattern>80\d{7}</nationalNumberPattern>
875         <exampleNumber>801234567</exampleNumber>
876       </tollFree>
877     </territory>
878
879     <!-- International Toll Free numbers  -->
880     <territory id="001" countryCode="800" leadingZeroPossible="true">
881       <availableFormats>
882         <numberFormat pattern="(\d{4})(\d{4})">
883           <format>$1 $2</format>
884         </numberFormat>
885       </availableFormats>
886       <generalDesc>
887         <nationalNumberPattern>\d{8}</nationalNumberPattern>
888         <possibleNumberPattern>\d{8}</possibleNumberPattern>
889         <exampleNumber>12345678</exampleNumber>
890       </generalDesc>
891       <fixedLine>
892         <nationalNumberPattern>NA</nationalNumberPattern>
893         <possibleNumberPattern>NA</possibleNumberPattern>
894       </fixedLine>
895       <mobile>
896         <nationalNumberPattern>NA</nationalNumberPattern>
897         <possibleNumberPattern>NA</possibleNumberPattern>
898       </mobile>
899       <tollFree>
900         <nationalNumberPattern>\d{8}</nationalNumberPattern>
901       </tollFree>
902     </territory>
903
904     <!-- Universal International Premium Rate Number -->
905     <territory id="001" countryCode="979">
906       <availableFormats>
907         <numberFormat pattern="(\d)(\d{4})(\d{4})">
908           <format>$1 $2 $3</format>
909         </numberFormat>
910       </availableFormats>
911       <generalDesc>
912         <nationalNumberPattern>\d{9}</nationalNumberPattern>
913         <possibleNumberPattern>\d{9}</possibleNumberPattern>
914         <exampleNumber>123456789</exampleNumber>
915       </generalDesc>
916       <fixedLine>
917         <nationalNumberPattern>NA</nationalNumberPattern>
918         <possibleNumberPattern>NA</possibleNumberPattern>
919       </fixedLine>
920       <mobile>
921         <nationalNumberPattern>NA</nationalNumberPattern>
922         <possibleNumberPattern>NA</possibleNumberPattern>
923       </mobile>
924       <premiumRate>
925         <nationalNumberPattern>\d{9}</nationalNumberPattern>
926       </premiumRate>
927     </territory>
928   </territories>
929 </phoneNumberMetadata>