METHODS

See METHODS in XML::Compile

Constructors

See Constructors in XML::Compile

$obj->from( $xmldata, %options )
$class->from( $xmldata, %options )

Read a GML structure from a data source, which can be anything acceptable by dataToXML(): a XML::LibXML::Element, XML as string or ref-string, filename, filehandle or known namespace.

Returned is the product (the type of the root node) and the parsed data-structure. The EOP version used for decoding is autodetected, unless specified.

See examples/read_gml.pl

» Example:
  my ($type, $data) = Geo::GML->from('data.xml');
$class->new( 'READER'|'WRITER'|'RW', %options )
Option Defined in Default

allow_undeclared

<true>

any_element

XML::Compile::Cache

ATTEMPT

block_namespace

XML::Compile::Schema

[]

hook

XML::Compile::Schema

undef

hooks

XML::Compile::Schema

[]

ignore_unused_tags

XML::Compile::Schema

<false>

key_rewrite

XML::Compile::Schema

[]

opts_readers

XML::Compile::Cache

[]

opts_rw

XML::Compile::Cache

<some>

opts_writers

XML::Compile::Cache

[]

parser_options

XML::Compile

<many>

prefixes

undef

schema_dirs

XML::Compile

undef

typemap

XML::Compile::Cache

{}

version

<required>

xsi_type

XML::Compile::Cache

{}

allow_undeclared => BOOLEAN
In the optimal case, all types used in your application are declared during the initiation phase of your program. This will make it easy to write a fast daemon application, or transform your program into a daemon later. So: "false" would be a good setting. However, on the moment, the developer of this module has no idea which types people will use. Please help me with the specs!
All any elements will be ATTEMPTed to be processed at run-time by default.
The GML specification will require PREFIXED key rewrite, because the complexity of namespaces is enormous. Besides, mixed elements are processed as STRUCTURAL by default (mixed in texts ignored).
any_element => CODE|'TAKE_ALL'|'SKIP_ALL'|'ATTEMPT'|'SLOPPY'
block_namespace => NAMESPACE|TYPE|HASH|CODE|ARRAY
hook => $hook|ARRAY
hooks => ARRAY
ignore_unused_tags => BOOLEAN|REGEXP
key_rewrite => HASH|CODE|ARRAY
opts_readers => HASH|ARRAY-of-PAIRS
opts_rw => HASH|ARRAY-of-PAIRS
opts_writers => HASH|ARRAY-of-PAIRS
parser_options => HASH|ARRAY
prefixes => ARRAY|HASH
Prefix abbreviations, to be used by cache object. Which prefixes are defined depends on the schema version.
schema_dirs => $directory|ARRAY-OF-directories
typemap => HASH|ARRAY
version => VERSION|NAMESPACE
Only used when the object is created directly from this base-class. It determines which GML syntax is to be used. Can be a VERSION like "3.1.1" or a NAMESPACE URI like 'NS_GML_300'.
xsi_type => HASH|ARRAY

Accessors

$obj->addHook( $hook|LIST|undef )
See addHook in XML::Compile::Schema.
$obj->addHooks( $hook, [$hook, ...] )
See addHooks in XML::Compile::Schema.
$obj->addKeyRewrite( $predef|CODE|HASH, ... )
See addKeyRewrite in XML::Compile::Schema.
$obj->addSchemaDirs( @directories|$filename )
$class->addSchemaDirs( @directories|$filename )
See addSchemaDirs in XML::Compile.
$obj->addSchemas( $xml, %options )
See addSchemas in XML::Compile::Schema.
$obj->addTypemap( PAIR )
See addTypemap in XML::Compile::Schema.
$obj->addTypemaps( PAIRS )
See addTypemaps in XML::Compile::Schema.
$obj->addXsiType( [HASH|ARRAY|LIST] )
See addXsiType in XML::Compile::Cache.
$obj->allowUndeclared( [BOOLEAN] )
See allowUndeclared in XML::Compile::Cache.
$obj->anyElement( 'ATTEMPT'|'SLOPPY'|'SKIP_ALL'|'TAKE_ALL'|CODE )
See anyElement in XML::Compile::Cache.
$obj->blockNamespace( $ns|$type|HASH|CODE|ARRAY )
See blockNamespace in XML::Compile::Schema.
$obj->direction

Returns 'READER', 'WRITER', or 'RW'.

$obj->hooks( [<'READER'|'WRITER'>] )
See hooks in XML::Compile::Schema.
$obj->typemap( [HASH|ARRAY|PAIRS] )
See typemap in XML::Compile::Cache.
$obj->useSchema( $schema, [$schema, ...] )
See useSchema in XML::Compile::Schema.
$obj->version

GML version, for instance '3.2.1'.

Prefix management

See Prefix management in XML::Compile::Cache

$obj->addNicePrefix( BASE, NAMESPACE )
See addNicePrefix in XML::Compile::Cache.
$obj->addPrefixes( [PAIRS|ARRAY|HASH] )
See addPrefixes in XML::Compile::Cache.
$obj->learnPrefixes( $node )
See learnPrefixes in XML::Compile::Cache.
$obj->prefix( $prefix )
See prefix in XML::Compile::Cache.
$obj->prefixFor( $uri )
See prefixFor in XML::Compile::Cache.
$obj->prefixed( $type|<$ns,$local> )
See prefixed in XML::Compile::Cache.
$obj->prefixes( [$params] )
See prefixes in XML::Compile::Cache.

Compilers

See Compilers in XML::Compile::Cache

$obj->addCompileOptions( ['READERS'|'WRITERS'|'RW'], %options )
See addCompileOptions in XML::Compile::Cache.
$obj->compile( <'READER'|'WRITER'>, $type, %options )
See compile in XML::Compile::Schema.
$obj->compileAll( ['READERS'|'WRITERS'|'RW', [$ns]] )
See compileAll in XML::Compile::Cache.
$obj->compileType( <'READER'|'WRITER'>, $type, %options )
See compileType in XML::Compile::Schema.
$obj->dataToXML( $node|REF-XML|XML-STRING|$filename|$fh|$known )
$class->dataToXML( $node|REF-XML|XML-STRING|$filename|$fh|$known )
See dataToXML in XML::Compile.
$obj->initParser( %options )
$class->initParser( %options )
See initParser in XML::Compile.
$obj->reader( $type|$name, %options )
See reader in XML::Compile::Cache.
$obj->template( 'PERL'|'XML', $type, %options )

See XML::Compile::Schema::template(). This will create an example of the data-structure based on GML. All %options are passed to the template generator, the only reason to have this method, is to avoid the need to collect all the GML XML files yourself.

Option Defined in Default

abstract_types

XML::Compile::Schema

'ERROR'

attributes_qualified

XML::Compile::Schema

<undef>

elements_qualified

XML::Compile::Schema

<undef>

include_namespaces

XML::Compile::Schema

<true>

indent

XML::Compile::Schema

" "

key_rewrite

XML::Compile::Schema

[]

show_comments

XML::Compile::Schema

ALL

skip_header

XML::Compile::Schema

<false>

abstract_types => 'ERROR'|'ACCEPT'
attributes_qualified => BOOLEAN
elements_qualified => 'ALL'|'TOP'|'NONE'|BOOLEAN
include_namespaces => BOOLEAN|CODE
indent => STRING
key_rewrite => HASH|CODE|ARRAY
show_comments => STRING|'ALL'|'NONE'
skip_header => BOOLEAN
» Example:
  use Geo::GML;
  use Geo::GML::Util     qw/NS_GML_321/;
  use XML::Compile::Util qw/pack_type/;
  my $gml   = Geo::GML->new(version => NS_GML_321);

  # to simplify the output, reducing often available large blocks
  my @types = qw/gml:MetaDataPropertyType gml:StringOrRefType
     gml:ReferenceType/;
  my %hook  = (type => \@collapse_types, replace => 'COLLAPSE');

  # generate the data-structure
  my $type  = 'gml:RectifiedGridCoverage';  # any element name
  print $gml->template(PERL => $type, hook => \%hook);
$obj->writer( $type|$name )
See writer in XML::Compile::Cache.

Helpers

$obj->GPtoGML( $object, %options )
See GPtoGML in Geo::GML::GeoPoint.

Administration

$obj->declare( <'READER'|'WRITER'|'RW'>, <$type|ARRAY>, %options )
See declare in XML::Compile::Cache.
$obj->doesExtend( $exttype, $basetype )
See doesExtend in XML::Compile::Schema.
$obj->elements
See elements in XML::Compile::Schema.
$obj->findName( $name )
See findName in XML::Compile::Cache.
$obj->findSchemaFile( $filename )
$class->findSchemaFile( $filename )
See findSchemaFile in XML::Compile.
$obj->importDefinitions( $xmldata, %options )
See importDefinitions in XML::Compile::Schema.
$obj->knownNamespace( $ns|PAIRS )
$class->knownNamespace( $ns|PAIRS )
See knownNamespace in XML::Compile.
$obj->namespaces
See namespaces in XML::Compile::Schema.
$obj->printIndex( [$fh], %options )

List all the elements which can be produced with the schema. By default, this only shows the elements and excludes the abstract elements from the list. The selected $fh is the default to print to.

Option Defined in Default

show_declared

XML::Compile::Cache

<true>

show_declared => BOOLEAN
$obj->types
See types in XML::Compile::Schema.
$obj->walkTree( $node, CODE )
See walkTree in XML::Compile.