| <!-- Copyright (C) 2009 The Libphonenumber Authors |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| |
| @author: Shaopeng Jia |
| |
| Metadata on Phone Number Plan and formatting rules. This file is used |
| solely for the purpose of unittesting, so data in this file is not |
| necessarily consistent with that of PhoneNumberMetadata.xml. |
| --> |
| |
| <phoneNumberMetadata> |
| <territories> |
| <!-- Andorra --> |
| <territory id="AD" countryCode="376" internationalPrefix="00"> |
| </territory> |
| |
| <!-- United Arab Emirates --> |
| <!-- Added since when formatting the number for mobile dialling we have special rules to handle |
| it. --> |
| <territory id="AE" countryCode="971" internationalPrefix="00"> |
| <generalDesc> |
| <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| </generalDesc> |
| <uan> |
| <nationalNumberPattern>600\d{6}</nationalNumberPattern> |
| <exampleNumber>600123456</exampleNumber> |
| </uan> |
| </territory> |
| |
| <!-- Angola --> |
| <!-- This country has been coopted to test the case of a national prefix with a non-numeric |
| symbol in it. It is also useful since it has no national prefix formatting rule. --> |
| <territory id="AO" countryCode="244" internationalPrefix="00" nationalPrefix="0~0"> |
| <availableFormats> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{3})"> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[29]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>2\d(?:[26-9]\d|\d[26-9])\d{5}</nationalNumberPattern> |
| <exampleNumber>222123456</exampleNumber> |
| </fixedLine> |
| <mobile> |
| <!-- Expanded the 92 prefix possibilities to match numbers found online. --> |
| <nationalNumberPattern>9[1-3]\d{7}</nationalNumberPattern> |
| <exampleNumber>923123456</exampleNumber> |
| </mobile> |
| </territory> |
| |
| <!-- Argentina --> |
| <territory id="AR" countryCode="54" internationalPrefix="00" |
| nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG" |
| nationalPrefixForParsing="0(?:(11|343|3715)15)?" |
| nationalPrefixTransformRule="9$1"> |
| <!-- Note in nationalPrefixForParsing, the areacode (such as 11, 343, etc.), when present in |
| front of carrier selection code 15, is captured to replace $1 in |
| nationalPrefixTransformRule --> |
| <availableFormats> |
| <numberFormat pattern="(\d{2})(\d{4})(\d{4})"> |
| <leadingDigits>11</leadingDigits> |
| <format>$1 $2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{4})(\d{2})(\d{4})"> |
| <leadingDigits>1[02-9]|[23]</leadingDigits> |
| <format>$1 $2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(9)(11)(\d{4})(\d{4})"> |
| <leadingDigits>911</leadingDigits> |
| <format>$2 15 $3-$4</format> |
| <intlFormat>$1 $2 $3 $4</intlFormat> |
| </numberFormat> |
| <numberFormat pattern="(9)(\d{4})(\d{2})(\d{4})" |
| carrierCodeFormattingRule="$NP$FG $CC"> |
| <leadingDigits>9(?:1[02-9]|[23])</leadingDigits> |
| <format>$2 $3-$4</format> |
| <intlFormat>$1 $2 $3 $4</intlFormat> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{4})"> |
| <leadingDigits>[68]</leadingDigits> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[1-3689]\d{9,10}</nationalNumberPattern> |
| <possibleNumberPattern>\d{6,11}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>[1-3]\d{9}</nationalNumberPattern> |
| <possibleNumberPattern>\d{6,10}</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>9\d{10}|[1-3]\d{9}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10,11}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>80\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>6(0\d|10)\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- Australia --> |
| <territory id="AU" countryCode="61" internationalPrefix="001[12]" |
| nationalPrefix="0" preferredInternationalPrefix="0011" |
| nationalPrefixFormattingRule="$NP$FG"> |
| <availableFormats> |
| <numberFormat nationalPrefixFormattingRule="$FG" |
| pattern="(\d{4})(\d{3})(\d{3})" > |
| <leadingDigits>1</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{1})(\d{4})(\d{4})"> |
| <leadingDigits>[2-478]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc > |
| <nationalNumberPattern>[1-578]\d{4,14}</nationalNumberPattern> |
| <possibleNumberPattern>\d{5,15}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>[2378]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>4\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>1800\d{6}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>190[0126]\d{6}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- Brazil --> |
| <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be |
| recognised by the library. --> |
| <territory id="BR" countryCode="55"> |
| </territory> |
| |
| <!-- Bahamas --> |
| <territory id="BS" countryCode="1" internationalPrefix="011" |
| nationalPrefix="1"> |
| <generalDesc> |
| <nationalNumberPattern>(242|8(00|66|77|88)|900)\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{7,10}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <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> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>242(357|359|457|557)\d{4}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>8(00|66|77|88)\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>900\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- Belarus --> |
| <!-- This country has been coopted to test the case of a national prefix formatting rule with a |
| space in it. --> |
| <territory id="BY" countryCode="375" internationalPrefix="810" nationalPrefix="8" |
| nationalPrefixForParsing="80?|99999" nationalPrefixFormattingRule="$NP $FG"> |
| <availableFormats> |
| <!-- We make some bogus formatting templates that differ only in length to check that |
| switching formatting patterns works as expected.--> |
| <numberFormat pattern="(\d{4})"> |
| <leadingDigits>[1-8]</leadingDigits> |
| <format>$1</format> |
| </numberFormat> |
| <!-- This pattern has an override to remove the space after the national prefix. --> |
| <numberFormat pattern="(\d{2})(\d{3})" nationalPrefixFormattingRule="$NP$FG"> |
| <leadingDigits>[1-8]</leadingDigits> |
| <format>$1 $2</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})"> |
| <leadingDigits>[1-8]</leadingDigits> |
| <format>$1 $2</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <!-- This numbering plan is completely bogus, but is used to test the AYTF logic. For that |
| reason, it is kept very simple. --> |
| <nationalNumberPattern>[1-9]\d{5}</nationalNumberPattern> |
| <possibleNumberPattern>\d{6}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <exampleNumber>112345</exampleNumber> |
| </fixedLine> |
| </territory> |
| |
| <!-- France --> |
| <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be |
| recognised by the library. --> |
| <territory id="FR" countryCode="33"> |
| </territory> |
| |
| <!-- Germany --> |
| <territory id="DE" countryCode="49" internationalPrefix="00" |
| nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"> |
| <availableFormats> |
| <numberFormat pattern="(\d{3})(\d{3,8})"> |
| <leadingDigits>2|3[3-9]|906|[4-9][1-9]1</leadingDigits> |
| <format>$1 $2</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{4,11})"> |
| <leadingDigits>[34]0|[68]9</leadingDigits> |
| <format>$1/$2</format> |
| </numberFormat> |
| <!-- Extra fictional pattern for shorter numbers with the same prefixes as the following |
| pattern, to illustrate the problem the AYTF has with real patterns that share this |
| property. --> |
| <numberFormat pattern="([4-9]\d)(\d{2})"> |
| <leadingDigits>[4-9]</leadingDigits> |
| <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits> |
| <format>$1 $2</format> |
| </numberFormat> |
| <numberFormat pattern="([4-9]\d{3})(\d{2,7})"> |
| <leadingDigits>[4-9]</leadingDigits> |
| <leadingDigits>[4-6]|[7-9](?:\d[1-9]|[1-9]\d)</leadingDigits> |
| <format>$1 $2</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{1})(\d{6})"> |
| <leadingDigits>800</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3,4})(\d{4})"> |
| <leadingDigits>900</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>\d{4,14}</nationalNumberPattern> |
| <possibleNumberPattern>\d{2,14}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>(?:[24-6]\d{2}|3[03-9]\d|[789](?:[1-9]\d|0[2-9]))\d{1,8}</nationalNumberPattern> |
| <exampleNumber>30123456</exampleNumber> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>1(5\d{9}|7\d{8}|6[02]\d{8}|63\d{7})</nationalNumberPattern> |
| <possibleNumberPattern>\d{10,11}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>800\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>900([135]\d{6}|9\d{7})</nationalNumberPattern> |
| <possibleNumberPattern>\d{10,11}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- United Kingdom --> |
| <territory id="GB" countryCode="44" internationalPrefix="00" |
| nationalPrefix="0" nationalPrefixFormattingRule="($NP$FG)" |
| mobileNumberPortableRegion="true"> |
| <availableFormats> |
| <numberFormat pattern="(\d{2})(\d{4})(\d{4})"> |
| <leadingDigits>[1-59]|[78]0</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d)(\d{3})(\d{3})(\d{3})"> |
| <leadingDigits>6</leadingDigits> |
| <format>$1 $2 $3 $4</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{4})(\d{3})(\d{3})"> |
| <leadingDigits>7[1-57-9]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{4})"> |
| <leadingDigits>8[47]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>\d{10}</nationalNumberPattern> |
| <possibleNumberPattern>\d{6,10}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>[1-6]\d{9}</nationalNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>7[1-57-9]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>80\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>9[018]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </premiumRate> |
| <sharedCost> |
| <nationalNumberPattern>8(?:4[3-5]|7[0-2])\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </sharedCost> |
| <voip> |
| <nationalNumberPattern>56\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </voip> |
| <personalNumber> |
| <nationalNumberPattern>70\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </personalNumber> |
| </territory> |
| |
| <!-- Guernsey --> |
| <!-- This country is used to test ShortNumberInfo, so at least the country calling code must be |
| recognised by the library, and it must be the same as that of the United Kingdom. --> |
| <territory id="GG" countryCode="44"> |
| </territory> |
| |
| <!-- Italy --> |
| <!-- http://en.wikipedia.org/wiki/%2B39 --> |
| <territory id="IT" countryCode="39" internationalPrefix="00" leadingZeroPossible="true"> |
| <availableFormats> |
| <numberFormat pattern="(\d{2})(\d{4})(\d{4})"> |
| <leadingDigits>0[26]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{4})(\d{3,4})"> |
| <leadingDigits>0[13-57-9]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})"> |
| <leadingDigits>3</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3,6})"> |
| <leadingDigits>8</leadingDigits> |
| <format>$1 $2</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[0389]\d{5,10}</nationalNumberPattern> |
| <possibleNumberPattern>\d{6,11}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>0\d{9,10}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10,11}</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>3\d{8,9}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9,10}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>80(?:0\d{6}|3\d{3})</nationalNumberPattern> |
| <possibleNumberPattern>\d{6,9}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>89(?:2\d{3}|9\d{6})</nationalNumberPattern> |
| <possibleNumberPattern>\d{6,9}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- Japan --> |
| <!-- The metadata here is added to unit test AsYouTypeFormatter for JP, which requires switching |
| patterns as digits beyond the third one are entered. As a result, only a few fake |
| formatting rules are added. --> |
| <territory id="JP" countryCode="81" internationalPrefix="010" |
| nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG" leadingZeroPossible="true"> |
| <availableFormats> |
| <numberFormat pattern="(\d{2})(\d{4})(\d{4})"> |
| <leadingDigits>[57-9]0</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})"> |
| <leadingDigits>[57-9]0</leadingDigits> |
| <format>$1 $2 $3 $4</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{3})(\d{4})"> |
| <leadingDigits>111|222|333</leadingDigits> |
| <leadingDigits>(?:111|222|333)1</leadingDigits> |
| <leadingDigits>(?:111|222|333)11</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{4})(\d)(\d{4})"> |
| <leadingDigits>222|333</leadingDigits> |
| <leadingDigits>2221|3332</leadingDigits> |
| <leadingDigits>22212|3332</leadingDigits> |
| <leadingDigits>222120|3332</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{2})(\d{4})"> |
| <leadingDigits>[23]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{4})"> |
| <leadingDigits>077</leadingDigits> |
| <format>$1-$2</format> |
| </numberFormat> |
| <!-- The following numberFormat is added to test that the format containing the star sign is |
| not used by the AYTF. --> |
| <numberFormat nationalPrefixFormattingRule="$FG" pattern="(\d{4})"> |
| <leadingDigits>[23]</leadingDigits> |
| <format>*$1</format> |
| </numberFormat> |
| </availableFormats> |
| <noInternationalDialling> |
| <nationalNumberPattern>[23]\d{3}</nationalNumberPattern> |
| <possibleNumberPattern>\d{4}</possibleNumberPattern> |
| </noInternationalDialling> |
| <generalDesc> |
| <nationalNumberPattern>07\d{5}|[1-357-9]\d{3,10}</nationalNumberPattern> |
| <possibleNumberPattern>\d{4,11}</possibleNumberPattern> |
| </generalDesc> |
| <tollFree> |
| <nationalNumberPattern>0777[01]\d{2}</nationalNumberPattern> |
| <possibleNumberPattern>\d{7}</possibleNumberPattern> |
| <exampleNumber>0777012</exampleNumber> |
| </tollFree> |
| </territory> |
| |
| <!-- Korea (Rep. of) --> |
| <!-- http://www.itu.int/oth/T0202000072/en --> |
| <!-- http://en.wikipedia.org/wiki/%2B82 --> |
| <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2349 --> |
| <!-- http://www.kcc.go.kr/user.do?mode=view&page=P02030300&dc=K02030300&boardId=1074&boardSeq=2240 --> |
| <!-- http://www.telecentro.co.kr/sub/index.php?job=detail&ebcf_id=faq&page=1&mid=0503&eb_seq=36 --> |
| <!-- Exceptions : |
| internationalPrefix |
| 0031, 0033, 0071, 0073 - Special services of KT and DACOM, ignorable |
| nationalPrefix |
| 1[4-6]XX-YYYY - Country-wide common number services, display as it is without hyphens --> |
| <territory id="KR" countryCode="82" internationalPrefix="00(?:[124-68]|[37]\d{2})" |
| nationalPrefix="0" nationalPrefixForParsing="0(8[1-46-8]|85\d{2})?" |
| nationalPrefixFormattingRule="$NP$FG"> |
| <availableFormats> |
| <numberFormat pattern="(\d{2})(\d{4})(\d{4})"> |
| <leadingDigits>1(?:0|1[19]|[69]9|5[458])|[57]0</leadingDigits> |
| <leadingDigits>1(?:0|1[19]|[69]9|5(?:44|59|8))|[57]0</leadingDigits> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{3})(\d{4})"> |
| <leadingDigits>1(?:[169][2-8]|[78]|5[1-4])|[68]0|[3-6][1-9][2-9]</leadingDigits> |
| <leadingDigits>1(?:[169][2-8]|[78]|5(?:[1-3]|4[56]))|[68]0|[3-6][1-9][2-9]</leadingDigits> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d)(\d{4})"> |
| <leadingDigits>131</leadingDigits> |
| <leadingDigits>1312</leadingDigits> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{2})(\d{4})"> |
| <leadingDigits>131</leadingDigits> |
| <leadingDigits>131[13-9]</leadingDigits> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{4})"> |
| <leadingDigits>13[2-9]</leadingDigits> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{2})(\d{3})(\d{4})"> |
| <leadingDigits>30</leadingDigits> |
| <format>$1-$2-$3-$4</format> |
| </numberFormat> |
| <numberFormat pattern="(\d)(\d{4})(\d{4})"> |
| <leadingDigits>2(?:[26]|3[0-467])</leadingDigits> |
| <leadingDigits>2(?:[26]|3(?:01|1[45]|2[17-9]|39|4|6[67]|7[078]))</leadingDigits> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d)(\d{3})(\d{4})"> |
| <leadingDigits>2(?:3[0-35-9]|[457-9])</leadingDigits> |
| <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> |
| <format>$1-$2-$3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d)(\d{3})"> |
| <leadingDigits>21[0-46-9]</leadingDigits> |
| <leadingDigits>21(?:[0-247-9]|3[124]|6[1269])</leadingDigits> |
| <format>$1-$2</format> |
| </numberFormat> |
| <numberFormat pattern="(\d)(\d{4})"> |
| <leadingDigits>21[36]</leadingDigits> |
| <leadingDigits>21(?:3[035-9]|6[03-578])</leadingDigits> |
| <format>$1-$2</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{3})"> |
| <leadingDigits>[3-6][1-9]1</leadingDigits> |
| <leadingDigits>[3-6][1-9]1(?:[0-46-9])</leadingDigits> |
| <leadingDigits>[3-6][1-9]1(?:[0-247-9]|3[124]|6[1269])</leadingDigits> |
| <format>$1-$2</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{4})"> |
| <leadingDigits>[3-6][1-9]1</leadingDigits> |
| <leadingDigits>[3-6][1-9]1[36]</leadingDigits> |
| <leadingDigits>[3-6][1-9]1(?:3[035-9]|6[03-578])</leadingDigits> |
| <format>$1-$2</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[1-7]\d{3,9}|8\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{4,10}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>(?:2|[34][1-3]|5[1-5]|6[1-4])(?:1\d{2,3}|[2-9]\d{6,7})</nationalNumberPattern> |
| <possibleNumberPattern>\d{4,10}</possibleNumberPattern> |
| <exampleNumber>22123456</exampleNumber> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>1[0-25-9]\d{7,8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9,10}</possibleNumberPattern> |
| <exampleNumber>1023456789</exampleNumber> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>80\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| <exampleNumber>801234567</exampleNumber> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>60[2-9]\d{6}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| <exampleNumber>602345678</exampleNumber> |
| </premiumRate> |
| <personalNumber> |
| <nationalNumberPattern>50\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| <exampleNumber>5012345678</exampleNumber> |
| </personalNumber> |
| <voip> |
| <nationalNumberPattern>70\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| <exampleNumber>7012345678</exampleNumber> |
| </voip> |
| </territory> |
| |
| <!-- Mexico --> |
| <territory id="MX" countryCode="52" internationalPrefix="00" |
| nationalPrefix="01" nationalPrefixForParsing="01|04[45](\d{10})" |
| nationalPrefixTransformRule="1$1" nationalPrefixFormattingRule="$NP $FG" |
| nationalPrefixOptionalWhenFormatting="true"> |
| <availableFormats> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{4})"> |
| <leadingDigits>[89]00</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{2})(\d{4})(\d{4})"> |
| <leadingDigits>33|55|81</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{4})"> |
| <leadingDigits>[2467]|3[0-24-9]|5[0-46-9]|8[2-9]|9[1-9]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat nationalPrefixFormattingRule="$FG" pattern="(1)(\d{2})(\d{4})(\d{4})"> |
| <leadingDigits>1(?:33|55|81)</leadingDigits> |
| <format>045 $2 $3 $4</format> |
| <intlFormat>$1 $2 $3 $4</intlFormat> |
| </numberFormat> |
| <numberFormat nationalPrefixFormattingRule="$FG" pattern="(1)(\d{3})(\d{3})(\d{4})"> |
| <leadingDigits>1(?:[124579]|3[0-24-9]|5[0-46-9]|8[02-9])</leadingDigits> |
| <format>045 $2 $3 $4</format> |
| <intlFormat>$1 $2 $3 $4</intlFormat> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[1-9]\d{9,10}</nationalNumberPattern> |
| <possibleNumberPattern>\d{7,11}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>[2-9]\d{9}</nationalNumberPattern> |
| <possibleNumberPattern>\d{7,10}</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>1\d{10}</nationalNumberPattern> |
| <possibleNumberPattern>\d{11}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>800\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>900\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- New Zealand --> |
| <territory id="NZ" countryCode="64" internationalPrefix="00" |
| nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"> |
| <availableFormats> |
| <numberFormat pattern="(\d)(\d{3})(\d{4})"> |
| <leadingDigits>24|[34679]</leadingDigits> |
| <format>$1-$2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d)(\d{3})(\d{3,5})"> |
| <leadingDigits>2[179]</leadingDigits> |
| <format>$1-$2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{3,4})"> |
| <leadingDigits>[89]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern> |
| [289]\d{7,9}| |
| [3-7]\d{7} |
| </nationalNumberPattern> |
| <possibleNumberPattern>\d{7,10}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>24099\d{3}|(?:3[2-79]|[479][2-689]|6[235-9])\d{6}</nationalNumberPattern> |
| <possibleNumberPattern>\d{7,8}</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <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> |
| <possibleNumberPattern>\d{8,10}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>800\d{6,7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9,10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>900\d{6,7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9,10}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- Poland --> |
| <!-- http://en.wikipedia.org/wiki/%2B48 --> |
| <territory id="PL" countryCode="48" internationalPrefix="00" |
| nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"> |
| <availableFormats> |
| <numberFormat pattern="(\d{2})(\d{3})(\d{2})(\d{2})"> |
| <format>$1 $2 $3 $4</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[1-9]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| </generalDesc> |
| <mobile> |
| <nationalNumberPattern>(?:5[01]|6[069]|7[289]|88)\d{7}</nationalNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>800\d{6}</nationalNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>70\d{7}</nationalNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- Réunion (French Departments and Territories in the Indian Ocean) --> |
| <!-- Note this shares the same country code as La Mayotte and French |
| Southern Territories, and the formatting patterns here are used by all of |
| them. This is present to test leadingDigits. --> |
| <territory id="RE" countryCode="262" leadingDigits="262|6(?:9[23]|47)|8" |
| internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"> |
| <availableFormats> |
| <numberFormat pattern="([268]\d{2})(\d{2})(\d{2})(\d{2})"> |
| <format>$1 $2 $3 $4</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[268]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <!-- 0876 numbers are mentioned in the plan, but none in use can be |
| found. --> |
| <nationalNumberPattern>262\d{6}</nationalNumberPattern> |
| <exampleNumber>262161234</exampleNumber> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>6(?:9[23]|47)\d{6}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| <exampleNumber>692123456</exampleNumber> |
| </mobile> |
| <!-- 08* Numbers in Réunion are the same as those valid in France. --> |
| <tollFree> |
| <nationalNumberPattern>80\d{7}</nationalNumberPattern> |
| <exampleNumber>801234567</exampleNumber> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>8(?:1[01]|2[0156]|84|9[0-37-9])\d{6}</nationalNumberPattern> |
| <exampleNumber>810123456</exampleNumber> |
| </premiumRate> |
| </territory> |
| |
| <!-- Singapore --> |
| <!-- http://www.ida.gov.sg/policies%20and%20regulation/20060508120124.aspx --> |
| <!-- For testing the AYTF with long NDDs, "777777" is added as a possible national prefix. --> |
| <territory id="SG" countryCode="65" internationalPrefix="0[0-3][0-9]" |
| nationalPrefixForParsing="777777"> |
| <availableFormats> |
| <numberFormat pattern="(\d{4})(\d{4})"> |
| <leadingDigits>[369]|8[1-9]</leadingDigits> |
| <format>$1 $2</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{4})(\d{3})(\d{4})"> |
| <leadingDigits>1[89]</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{4})"> |
| <leadingDigits>800</leadingDigits> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>[13689]\d{7,10}</nationalNumberPattern> |
| <!-- This specific pattern with the | is used to unit-test IsPossibleNumberWithReason. --> |
| <possibleNumberPattern> |
| \d{8}| |
| \d{10,11} |
| </possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>[36]\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{8}</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>[89]\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{8}</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>1?800\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10,11}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>1900\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{11}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- United States --> |
| <!-- http://www.nanpa.com/reports/reports_npa.html --> |
| <!-- For testing purposes, numbers starting with 24 are not considered US numbers.--> |
| <territory id="US" countryCode="1" internationalPrefix="011" |
| preferredExtnPrefix=" extn. " nationalPrefix="1" |
| mainCountryForCode="true" nationalPrefixOptionalWhenFormatting="true" |
| mobileNumberPortableRegion="true"> |
| <availableFormats> |
| <numberFormat pattern="(\d{3})(\d{4})"> |
| <format>$1 $2</format> |
| <intlFormat>NA</intlFormat> |
| </numberFormat> |
| <numberFormat pattern="(\d{3})(\d{3})(\d{4})"> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <!-- Numbers beginning with 7 are excluded for testing purposes only. --> |
| <nationalNumberPattern>[13-689]\d{9}|2[0-35-9]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{7}(?:\d{3})?</possibleNumberPattern> |
| <exampleNumber>1234567890</exampleNumber> |
| </generalDesc> |
| <noInternationalDialling> |
| <!-- This range is added for testing purposes only. --> |
| <nationalNumberPattern>800\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </noInternationalDialling> |
| <tollFree> |
| <nationalNumberPattern>8(?:00|66|77|88)\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </tollFree> |
| <premiumRate> |
| <nationalNumberPattern>900\d{7}</nationalNumberPattern> |
| <possibleNumberPattern>\d{10}</possibleNumberPattern> |
| </premiumRate> |
| </territory> |
| |
| <!-- Mayotte --> |
| <territory id="YT" countryCode="262" leadingDigits="269|639" |
| internationalPrefix="00" nationalPrefix="0" nationalPrefixFormattingRule="$NP$FG"> |
| <!-- Formatting as per La Réunion. --> |
| <generalDesc> |
| <nationalNumberPattern>[268]\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>2696[0-4]\d{4}</nationalNumberPattern> |
| <exampleNumber>269601234</exampleNumber> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>639\d{6}</nationalNumberPattern> |
| <exampleNumber>639123456</exampleNumber> |
| </mobile> |
| <!-- Same as in France. --> |
| <tollFree> |
| <nationalNumberPattern>80\d{7}</nationalNumberPattern> |
| <exampleNumber>801234567</exampleNumber> |
| </tollFree> |
| </territory> |
| |
| <!-- International Toll Free numbers --> |
| <territory id="001" countryCode="800" leadingZeroPossible="true"> |
| <availableFormats> |
| <numberFormat pattern="(\d{4})(\d{4})"> |
| <format>$1 $2</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>\d{8}</nationalNumberPattern> |
| <possibleNumberPattern>\d{8}</possibleNumberPattern> |
| <exampleNumber>12345678</exampleNumber> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>NA</nationalNumberPattern> |
| <possibleNumberPattern>NA</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>NA</nationalNumberPattern> |
| <possibleNumberPattern>NA</possibleNumberPattern> |
| </mobile> |
| <tollFree> |
| <nationalNumberPattern>\d{8}</nationalNumberPattern> |
| </tollFree> |
| </territory> |
| |
| <!-- Universal International Premium Rate Number --> |
| <territory id="001" countryCode="979"> |
| <availableFormats> |
| <numberFormat pattern="(\d)(\d{4})(\d{4})"> |
| <format>$1 $2 $3</format> |
| </numberFormat> |
| </availableFormats> |
| <generalDesc> |
| <nationalNumberPattern>\d{9}</nationalNumberPattern> |
| <possibleNumberPattern>\d{9}</possibleNumberPattern> |
| <exampleNumber>123456789</exampleNumber> |
| </generalDesc> |
| <fixedLine> |
| <nationalNumberPattern>NA</nationalNumberPattern> |
| <possibleNumberPattern>NA</possibleNumberPattern> |
| </fixedLine> |
| <mobile> |
| <nationalNumberPattern>NA</nationalNumberPattern> |
| <possibleNumberPattern>NA</possibleNumberPattern> |
| </mobile> |
| <premiumRate> |
| <nationalNumberPattern>\d{9}</nationalNumberPattern> |
| </premiumRate> |
| </territory> |
| </territories> |
| </phoneNumberMetadata> |