# Package org.apache.sis.util.iso

Implementations of GeoAPI types from the `org​.opengis​.util` package. The main content of this package are:

- Implementations of `InternationalString` (related to the `<lan:textGroup>` XML element found in ISO specifications):
  - `SimpleInternationalString` for wrapping a single `String`;
  - `DefaultInternationalString` for providing many localizations in a `Map`;
  - `ResourceInternationalString` for providing localizations from a `ResourceBundle`.
  - `Types​.getCodeTitle(CodeList)` for wrapping a `CodeList` value.
- Implementations of `GenericName` (derived from ISO 19103):
  - `DefaultLocalName` for identifier within a name space.
  - `DefaultMemberName` for identifying a member of a record.
  - `DefaultTypeName` for identifying an attribute type associated to a member.
  - `DefaultScopedName` for a composite of a head name and a tail name.
- Implementations of `Record` and related classes (derived from ISO 19103):
  - `DefaultRecord` for a list of logically related elements as (name, value) pairs.
  - `DefaultRecordType` for definition of the type of a `Record`.
  - `DefaultRecordSchema` for a collection of `RecordType`s in a given namespace.
- Static utility methods:
  - `Types` for working with UML identifiers and description of GeoAPI types.
  - `Names` for simple creation and operations on `GenericName`.

Anatomy of a name
Names may be fully qualified (like `"urn:ogc:def:crs:EPSG::4326"`), or they may be relative to a scope (like `"EPSG::4326"` in the `"urn:ogc:def:crs"` scope). In the following illustration, each line is one possible construction for `"urn:ogc:crs:epsg:4326"` (taken as an abridged form of above URN for this example only). For each construction:

- The first columns shows the name in a green background.
- The second and third columns show the (head.tail) and (path.tip) components, respectively.
- The parts without colored background do not appear in the string representation or in the list of parsed names.

Components in scope, head, tail, path and tip
scope.name | head.tail | path.tip | Type
--- | --- | --- | ---
`urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | Scoped name with global namespace
`urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | Scoped name
`urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | Scoped name
`urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | Scoped name
`urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | `urn:ogc:crs:epsg:4326` | Local name

Since:
  0.3

Defined in the `sis-metadata` module

- Class Summary
  Class | Description
  --- | ---
  AbstractFactory | Base class of factories provided in the Apache SIS library.
  AbstractInternationalString | Base class for character strings that has been internationalized into several locales.
  AbstractName | Base class for sequence of identifiers rooted within the context of a namespace.
  DefaultInternationalString | An international string using a map of strings for different locales.
  DefaultLocalName | Identifier within a name space for a local object.
  DefaultMemberName | The name to identify a member of a record.
  DefaultNameFactory | A factory for creating `AbstractName` objects.
  DefaultNameSpace | A domain in which names given by character strings are defined.
  DefaultRecord | A list of logically related elements as (name, value) pairs in a dictionary.
  DefaultRecordSchema | A collection of record types in a given namespace.
  DefaultRecordType | An immutable definition of the type of a record.
  DefaultScopedName | A composite of a name space (as a local name) and a generic name valid in that name space.
  DefaultTypeName | The name of an attribute type associated to a member name.
  Names | Static methods for creating, parsing and formatting generic names.
  ResourceInternationalString | An international string backed by a `ResourceBundle`.
  SimpleInternationalString | An international string consisting of a single string for all locales.
  Types | Static methods working on GeoAPI types and `CodeList` values.