diff options
Diffstat (limited to 'PhoneNumberMetadataForTesting.xml')
-rw-r--r-- | PhoneNumberMetadataForTesting.xml | 866 |
1 files changed, 866 insertions, 0 deletions
diff --git a/PhoneNumberMetadataForTesting.xml b/PhoneNumberMetadataForTesting.xml new file mode 100644 index 0000000..04d5729 --- /dev/null +++ b/PhoneNumberMetadataForTesting.xml @@ -0,0 +1,866 @@ +<!-- 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> |