DataStandardizer.Geography
1.2.0
Prefix Reserved
dotnet add package DataStandardizer.Geography --version 1.2.0
NuGet\Install-Package DataStandardizer.Geography -Version 1.2.0
<PackageReference Include="DataStandardizer.Geography" Version="1.2.0" />
<PackageVersion Include="DataStandardizer.Geography" Version="1.2.0" />
<PackageReference Include="DataStandardizer.Geography" />
paket add DataStandardizer.Geography --version 1.2.0
#r "nuget: DataStandardizer.Geography, 1.2.0"
#:package DataStandardizer.Geography@1.2.0
#addin nuget:?package=DataStandardizer.Geography&version=1.2.0
#tool nuget:?package=DataStandardizer.Geography&version=1.2.0
Introduction
Data Standardizer provides implementations of various internationally recognised standards in data processing, covering topics ranging from languages to currencies and geographical entities. With strongly-typed enumerations for each standard (where applicable) or other targeted data types, you can represent these elements in your code such that errors with invalid values are minimised.
Supported target platforms include (modern) .Net and .Net Standard. Data Standardizer can be used in modern application software, but is also available as an option for older codebases that are being upgraded more gradually or may remain on older frameworks indefinitely.
📚 Documentation
Full documentation — user guides, concepts, and API reference for every package — is published at matthew25187.github.io/DataStandardizer.
Supporting the project
If you derive a commercial benefit from use of Data Standardizer or feel it otherwise adds value to your project, you are asked to please consider supporting the project. You can do this by becoming a GitHub sponsor to make a financial contribution. Data Standardizer is maintained and enhanced by @matthew25187 in his personal time and made available for free for all to use.
Getting Started
Installation
Data Standardizer is available as a series of packages from NuGet.org that can be linked to your existing projects. Available packages include:
| Package | Description |
|---|---|
| DataStandardizer.Chronology | Supports the following standards:<ul><li>TZ Database</li><li>Unix time</li><li>DOS date & time</li></ul> |
| DataStandardizer.Communication | Supports the following standards:<ul><li>Recommendation ITU-T E.164, The international public telecommunication numbering plan</li></ul> |
| DataStandardizer.Core | Common types used to implement standards in the other packages. You should not need to link to this package directly. |
| DataStandardizer.File.CSV | Supports the following standards:<ul><li>RFC 4180, Common Format and MIME Type for Comma-Separated Values (CSV) Files</li></ul> |
| DataStandardizer.Geography | Supports the following standards:<ul><li>ISO 3166-1, Codes for the representation of names of countries and their subdivisions – Part 1: Country code</li><li>ISO 3166-2, Codes for the representation of names of countries and their subdivisions – Part 2: Country subdivision code</li><li>UN M49, Standard Country or Area Codes for Statistical Use (Series M, No. 49)</li></ul> |
| DataStandardizer.Language | Supports the following standards:<ul><li>ISO 639, Code for the representation of names of languages</li><ul><li>Part 1: Alpha-2 code</li><li>Part 2: Alpha-3 code</li><li>Part 3: Alpha-3 code for comprehensive coverage of languages</li><li>Part 5: Alpha-3 code for language families and groups</li></ul><li>ISO 15924, Codes for the representation of names of scripts</li></ul> |
| DataStandardizer.LanguageTag | Supports the following standards:<ul><li>Best Current Practice (BCP) 47 for IETF language tags</li></ul> |
| DataStandardizer.Money | Supports the following standards:<ul><li>ISO 4217, Codes for the representation of currencies and funds</li><ul><li>Table A.1 – Current currency & funds code list</li><li>Table A.2 – Current funds codes</li><li>Table A.3 – List of codes for historic denominations of currencies & funds</li></ul><li>Money type, as described in Patterns of Enterprise Application Architecture by Martin Fowler</li></ul> |
To use a particular standard in your application, find the corresponding package from the above list and add it as a dependency to your project. Instructions for doing so will depend on what development tooling you are using.
- Visual Studio: see Install and manage packages in Visual Studio using the NuGet Package Manager
- .Net CLI: see Install and manage NuGet packages with the dotnet CLI
- Visual Studio Code: see NuGet in Visual Studio Code
See the Get started guide for step-by-step installation and a quickstart.
Software dependencies
Depending on which .Net platform you are targeting, the above packages will also depend on various other system- and third-party packages. They will be included as static dependencies where required and should be automatically resolved, but if you are using a proxy for your package server you may need to make sure these other packages are also available.
Latest releases
The most recently produced release version (shown above) does not necessarily correspond with the latest package version published to NuGet or any other publically available source.
Build and test
Data Standardizer is open source so you can read, build, and adapt it for your own use. The project does not currently accept third-party code contributions; the instructions below are provided as a convenience for working with your own copy or fork of the repository.
After cloning the repository, you can compile the entire solution from the repository root:
dotnet build DataStandardizer.sln
and run the XUnit-based tests with:
dotnet test DataStandardizer.sln
Per-package solution filter (*.slnf) files let you build or test a single package in isolation. For the full branching strategy, per-package builds, IDE testing, and the PowerShell scripts that regenerate the standard enums, see Build from source in the documentation.
Usage
Though each package contains many types, typically there are only a few you will use directly in your application. See the project documentation for user guides, concepts, and API reference covering each package — including built-in CSV reading, writing, and normalization in DataStandardizer.File.CSV.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp1.0 was computed. netcoreapp1.1 was computed. netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard1.0 is compatible. netstandard1.1 was computed. netstandard1.2 was computed. netstandard1.3 was computed. netstandard1.4 was computed. netstandard1.5 was computed. netstandard1.6 was computed. netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net45 was computed. net451 was computed. net452 was computed. net46 was computed. net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen30 was computed. tizen40 was computed. tizen60 was computed. |
| Universal Windows Platform | uap was computed. uap10.0 was computed. |
| Windows Phone | wp8 was computed. wp81 was computed. wpa81 was computed. |
| Windows Store | netcore was computed. netcore45 was computed. netcore451 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 1.0
- DataStandardizer.Core (>= 1.1.0)
- JetBrains.Annotations (>= 2025.2.2)
- NETStandard.Library (>= 2.0.3)
-
.NETStandard 2.0
- DataStandardizer.Core (>= 1.1.0)
- JetBrains.Annotations (>= 2025.2.2)
-
net10.0
- DataStandardizer.Core (>= 1.1.0)
-
net8.0
- DataStandardizer.Core (>= 1.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on DataStandardizer.Geography:
| Package | Downloads |
|---|---|
|
DataStandardizer.LanguageTag
Data Standardizer provides implementations of various internationally recognised standards in data processing, covering topics ranging from languages to currencies and geographical entities. With strongly-typed enumerations for each standard (where applicable) or other targeted data types, you can represent these elements in your code such that errors with invalid values are minimised. Includes: - Supports use of IETF BCP 47 language tags as defined by RFC 5646. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated | |
|---|---|---|---|
| 1.2.0 | 0 | 8/22/2026 | |
| 1.1.0 | 3,944 | 1/10/2026 | |
| 1.1.0-preview.1 | 111 | 12/20/2025 | |
| 1.0.0 | 365 | 12/7/2025 | |
| 1.0.0-preview.4 | 149 | 12/6/2025 | |
| 1.0.0-preview.1 | 220 | 9/25/2025 |
- Add UnM49Area enum covering every level of the UN M49 hierarchy.
- Declare the minimum PowerShell version required by each code generation script.
- The code generation scripts use PowerShell 7 syntax and cmdlet features but most carried no #Requires directive, so running one under Windows PowerShell produced a wall of parser errors rather than a clear statement of the prerequisite.
- Add a #Requires -Version directive to the eight scripts and the one module that lacked one, and correct four scripts that understated their requirement as 7.0 despite using the ValidateNotNullOrWhiteSpace attribute introduced in 7.4.
- Each directive now states that file's actual minimum, determined by walking the abstract syntax tree of each script for version-gated language features rather than by pattern matching, which avoids false positives from generated C# text embedded in string literals.
- Add the UnM49Area enum covering every level of the UN M49 hierarchy.
- The two existing UN M49 enumerations represent countries and areas only, keyed by ISO 3166-1 alpha-2 and alpha-3 code, so a region could be named in an attribute but never held as a value.
- Introduce UnM49Area, whose members span every level of the hierarchy: the world, regions, sub-regions, intermediate regions, and countries or areas.
- Add GenerateUNM49AreaOfficial.ps1 to generate the enumeration from the UN Statistics Division dataset.
- Extend UnM49Extensions to cover the new enumeration.
- DataStandardizer.UNM49 is left unchanged; the new type ships in DataStandardizer.Geography only, so that referencing both packages cannot yield two incompatible types of the same name.