NAME
XML::Compile::Translate::Template - create an XML or PERL example
INHERITANCE
XML::Compile::Translate::Template
is a XML::Compile::Translate
SYNOPSIS
my $schema = XML::Compile::Schema->new(...);
print $schema->template(XML => $type, ...);
print $schema->template(PERL => $type, ...);
# script as wrapper for this module
schema2example -f XML ...
DESCRIPTION
The translator understands schemas, but does not encode that into actions. This module interprets the parse results of the translator, and creates a kind of abstract syntax tree from it, which can be used for documentational purposes. Then, it implements to ways to represent that knowledge: as an XML or a Perl example of the data-structure which the schema describes.
Unsupported features
METHODS
Constructors
$obj->new(TRANSLATOR, OPTIONS)
$obj->register(NAME)
XML::Compile::Translate::Template->register(NAME)
Attributes
Handlers
XML::Compile::Translate::Template->compile(ELEMENT|ATTRIBUTE|TYPE, OPTIONS)
DETAILS
Translator options
Processing Wildcards
Wildcards are not (yet) supported.
Schema hooks
Hooks are implemented since version 0.82. They can be used to improve the template output.
hooks executed before the template is generated
None defined yet.
hooks executed as replacement
The predefined hook COLLAPSE
can be used to remove the extensive listing of some elements. Usually used with a type of which you know the structure or which is repeated often.
hooks for post-processing, after the data is collected
None defined yet.
Typemaps
Typemaps are currently only available to improve the PERL output.
Typemaps for PERL template output
You can pass &function_name
to indicate that the code reference with variable name $function_name
will be called. Mind the change of &
into $
.
When $object_name
is provided, then that object is an interface object, which will be called for the indicated type.
In case class name (any bareword will do) is specified, it is shown as a call to the toXML()
instance method call from some data object of the specified class.
example: typemaps with template
$schemas->template(PERL => $some_type, typemap =>
{ $type1 => '&myfunc' # $myfunc->('WRITER', ...)
, $type2 => '$interf' # $interf->($object, ...)
, $type3 => 'My::Class'
});
SEE ALSO
This module is part of XML-Compile distribution version 1.12, built on January 11, 2010. Website: http://perl.overmeer.net/xml-compile/
All modules in this suite: XML::Compile, XML::Compile::SOAP, XML::Compile::SOAP12, XML::Compile::SOAP::Daemon, XML::Compile::Tester, XML::Compile::Cache, XML::Compile::Dumper, XML::Compile::RPC, and XML::Rewrite, XML::ExistDB, XML::LibXML::Simple.
Please post questions or ideas to the mailinglist at http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile For life contact with other developers, visit the #xml-compile
channel on irc.perl.org
.
LICENSE
Copyrights 2006-2010 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