SYNOPSIS

 use Geo::EOP ':eop1.1';

 my $eop = Geo::EOP->new(eop_version => '1.1');

 # see XML::Compile::Cache on how to use readers and writers
 my $data = $eop->reader("gml:GridCoverage")->($xmlmsg);
 my $xml  = $eop->writer($sometype)->($doc, $perldata);

 # or without help of the cache, XML::Compile::Schema
 my $r    = $gml->compile(READER => $sometype);
 my $data = $r->($xml);

 # read a eop data file.  Autodetects the version used.
 my ($type, $data) = $eop->from('data.xml');
 my ($type, $data) = Geo::EOP->from('data.xml');
 print "Root type:   $type\n";
 print "EOP version: $data->{version}\n";

 # huge overview on all defined elements
 $gml->printIndex;

See SYNOPSIS in Geo::GML

DESCRIPTION

Provides access to the EOP definitions specified as XML schemas, based on GML. Up to version 1.0, these schemas where named 'HMA' (Heterogeneous EO Missions Accessibility), and the development is still part of these ESA efforts for standardization.

BE WARNED that HMA1.0 and EOP 1.1/1.2 are only using a subset of GML version 3.1.1, due to problems with some software tools. This limitation will probably be removed in 1.3 (or whatever the next version will be named).

The first releases of this module will not powerful, but hopefully people contribute. For instance, an example conversion script between various versions is very welcome! It would be nice to help each other. I will clean-up the implementation, to make it publishable, but do not have the knowledge about needed to implement the converter itself.

See DESCRIPTION in Geo::GML

DETAILS

Distribution collection overview

See Distribution collection overview in XML::Compile

Comparison

See Comparison in XML::Compile

Collecting definitions

See Collecting definitions in XML::Compile::Schema

Organizing your definitions

See Organizing your definitions in XML::Compile::Schema

Addressing components

See Addressing components in XML::Compile::Schema

Representing data-structures

See Representing data-structures in XML::Compile::Schema

simpleType

See simpleType in XML::Compile::Schema

complexType/simpleContent

See complexType/simpleContent in XML::Compile::Schema

complexType and complexType/complexContent

See complexType and complexType/complexContent in XML::Compile::Schema

Manually produced XML NODE

See Manually produced XML NODE in XML::Compile::Schema

Occurence

See Occurence in XML::Compile::Schema

Default Values

See Default Values in XML::Compile::Schema

Repetative blocks

See Repetative blocks in XML::Compile::Schema

List type

See List type in XML::Compile::Schema

Using substitutionGroup constructs

See Using substitutionGroup constructs in XML::Compile::Schema

Wildcards via any and anyAttribute

See Wildcards via any and anyAttribute in XML::Compile::Schema

ComplexType with "mixed" attribute

See ComplexType with "mixed" attribute in XML::Compile::Schema

hexBinary and base64Binary

See hexBinary and base64Binary in XML::Compile::Schema

Schema hooks

See Schema hooks in XML::Compile::Schema

Defining hooks

See Defining hooks in XML::Compile::Schema

General syntax

See General syntax in XML::Compile::Schema

Hooks on matching types

See Hooks on matching types in XML::Compile::Schema

Hooks on extended type

See Hooks on extended type in XML::Compile::Schema

Hooks on matching ids

See Hooks on matching ids in XML::Compile::Schema

Hooks on matching paths

See Hooks on matching paths in XML::Compile::Schema

Typemaps

See Typemaps in XML::Compile::Schema

Private variables in objects

See Private variables in objects in XML::Compile::Schema

Typemap limitations

See Typemap limitations in XML::Compile::Schema

Handling xsi:type

See Handling xsi:type in XML::Compile::Schema

Key rewrite

See Key rewrite in XML::Compile::Schema

key_rewrite via table

See key_rewrite via table in XML::Compile::Schema

Rewrite via function

See Rewrite via function in XML::Compile::Schema

key_rewrite when localNames collide

See key_rewrite when localNames collide in XML::Compile::Schema

Rewrite for convenience

See Rewrite for convenience in XML::Compile::Schema

Pre-defined key_rewrite rules

See Pre-defined key_rewrite rules in XML::Compile::Schema

Units

GML is careful about its units, which is nice but verbose. Therefore, this module gives you a way to set your preferences. The reader will simplify the structure, re-calculating the values found into the units of measure you prefer, according to UCUM (http://aurora.regenstrief.org/ucum)

  my $eop = Geo::EOP->new(...
     , units => { distance => 'm'
                , angle    => 'deg' }
     );

Available conversions: