NAME

XML::Compile::Util - Utility routines for XML::Compile components

INHERITANCE

XML::Compile::Util
  is a Exporter

SYNOPSIS

use XML::Compile::Util;
my $node_type = pack_type $ns, $localname;
my ($ns, $localname) = unpack_type $node_type;

DESCRIPTION

The functions provided by this package are used by various XML::Compile components, which on their own may be unrelated.

FUNCTIONS

block_label(KIND, LABEL)

    Particle blocks, like `sequence' and `choice', which have a maxOccurs (maximum occurrence) which is 2 of more, are represented by an ARRAY of HASHs. The label with such a block is derived from its first element. This function determines how.

    The KIND of block is abbreviated, and prepended before the LABEL. When the LABEL already had a block abbreviation (which may be caused by nested blocks), that will be stripped first.

    An element KIND of block is found in substitution groups. That label will not change.

    example: labels for blocks with maxOccurs > 1

    seq_address      # sequence get seq_ prepended
    cho_gender       # choices get cho_ before them
    all_money        # an all block can also be repreated in spec >1.1
    gr_people        # group refers to a block of above type, but
                     #    that type is not reflected in the name

odd_elements(LIST)

    Returns the odd-numbered elements in the list.

pack_id(NAMESPACE, ID)

    Translates the two arguments into one compact string representation of the node id.

    example:

    print pack_id 'http://my-ns', 'my-id';
    # shows:  http://my-ns#my-id

pack_type(NAMESPACE, LOCALNAME)

    Translates the two arguments into one compact string representation of the node type.

    example:

    print pack_type 'http://my-ns', 'my-type';
    # shows:  {http://my-ns}my-type 

unpack_type(STRING)

    Returns a LIST of two elements: the name-space and the id, as included in the STRING. That STRING must be compatible with the result of pack_id().

SEE ALSO

This module is part of XML-Compile distribution version 0.54, built on September 14, 2007. Website: http://perl.overmeer.net/xml-compile/

LICENSE

Copyrights 2006-2007 by Mark Overmeer. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html