summaryrefslogtreecommitdiff
path: root/PhoneNumberMetadataForTesting.xml
diff options
context:
space:
mode:
Diffstat (limited to 'PhoneNumberMetadataForTesting.xml')
-rw-r--r--PhoneNumberMetadataForTesting.xml866
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>