=head1 NAME
XML::Rewrite::Schema - transform schemas
=head1 INHERITANCE
XML::Rewrite::Schema
is a XML::Rewrite
is a XML::Compile::Cache
is a XML::Compile::Schema
is a XML::Compile
=head1 SYNOPSIS
my $rewriter = XML::Rewriter::Schema->new(...);
my ($type, $data) = $rewriter->process($file);
my $doc = $rewriter->buildDOM($type => $data);
=head1 DESCRIPTION
Implements additional transformations, available for SCHEMA (version 2001)
specific extension.
Feel invited to contribute ideas of useful features.
=head1 METHODS
=head2 Constructors
XML::Rewrite::Schema-E<gt>B<new>([SCHEMA], OPTIONS)
=over 4
Option --Defined in --Default
allow_undeclared XML::Compile::Cache <true>
any_attribute XML::Compile::Cache 'ATTEMPT'
any_element XML::Compile::Cache 'ATTEMPT'
attribute_form <undef>
blanks_before XML::Rewrite 'NONE'
change XML::Rewrite 'TRANSFORM'
comments XML::Rewrite 'KEEP'
defaults_writer XML::Rewrite 'IGNORE'
element_form <undef>
expand_includes <false>
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 []
opts_writers XML::Compile::Cache []
output_compression XML::Rewrite <undef>
output_encoding XML::Rewrite <undef>
output_standalone XML::Rewrite <undef>
output_version XML::Rewrite <undef>
prefixes XML::Compile::Cache <smart>
remove_annotation <false>
remove_elements XML::Rewrite []
remove_id_constraints <false>
schema_dirs XML::Compile undef
target_namespace <undef>
typemap XML::Compile::Schema {}
use_default_namespace XML::Rewrite <false>
. allow_undeclared => BOOLEAN
. any_attribute => CODE|'TAKE_ALL'|'SKIP_ALL'|'ATTEMPT'
. any_element => CODE|'TAKE_ALL'|'SKIP_ALL'|'ATTEMPT'
. attribute_form => 'qualified'|'unqualified'
. blanks_before => 'ALL'|'CONTAINERS'|'NONE'
. change => 'REPAIR'|'TRANSFORM'
. comments => 'REMOVE'|'KEEP'
. defaults_writer => 'EXTEND'|'IGNORE'|'MINIMAL'
. element_form => 'qualified'|'unqualified'
. expand_includes => BOOLEAN
=over 4
Include all the "include" files recursively, and merge their content
with the main schema.
=back
. hook => ARRAY-WITH-HOOKDATA | HOOK
. hooks => ARRAY-OF-HOOK
. ignore_unused_tags => BOOLEAN|REGEXP
. key_rewrite => HASH|CODE|ARRAY-of-HASH-and-CODE
. opts_readers => HASH|ARRAY-of-PAIRS
. opts_rw => HASH|ARRAY-of-PAIRS
. opts_writers => HASH|ARRAY-of-PAIRS
. output_compression => -1, 0-8
. output_encoding => CHARSET
. output_standalone => BOOLEAN|'yes'|'no'
. output_version => STRING
. prefixes => HASH|ARRAY-of-PAIRS
. remove_annotation => BOOLEAN
. remove_elements => ARRAY
. remove_id_constraints => BOOLEAN
=over 4
Remove the identity constraints (key, keyref, and unique elements) from
the schema.
=back
. schema_dirs => DIRECTORY|ARRAY-OF-DIRECTORIES
. target_namespace => URI
. typemap => HASH
. use_default_namespace => BOOLEAN
=back
=head2 Accessors
$obj-E<gt>B<addHook>(HOOKDATA|HOOK|undef)
=over 4
See L<XML::Compile::Schema/"Accessors">
=back
$obj-E<gt>B<addHooks>(HOOK, [HOOK, ...])
=over 4
See L<XML::Compile::Schema/"Accessors">
=back
$obj-E<gt>B<addKeyRewrite>(CODE|HASH, CODE|HASH, ...)
=over 4
See L<XML::Compile::Schema/"Accessors">
=back
$obj-E<gt>B<addSchemaDirs>(DIRECTORIES|FILENAME)
XML::Rewrite::Schema-E<gt>B<addSchemaDirs>(DIRECTORIES|FILENAME)
=over 4
See L<XML::Compile/"Accessors">
=back
$obj-E<gt>B<addSchemas>(XML, OPTIONS)
=over 4
See L<XML::Compile::Schema/"Accessors">
=back
$obj-E<gt>B<addTypemap>(PAIR)
=over 4
See L<XML::Compile::Schema/"Accessors">
=back
$obj-E<gt>B<addTypemaps>(PAIRS)
=over 4
See L<XML::Compile::Schema/"Accessors">
=back
$obj-E<gt>B<allowUndeclared>([BOOLEAN])
=over 4
See L<XML::Compile::Cache/"Accessors">
=back
$obj-E<gt>B<hooks>
=over 4
See L<XML::Compile::Schema/"Accessors">
=back
$obj-E<gt>B<prefixes>([PAIRS])
=over 4
See L<XML::Compile::Cache/"Accessors">
=back
=head2 Compilers
$obj-E<gt>B<compile>(('READER'|'WRITER'), TYPE, OPTIONS)
=over 4
See L<XML::Compile::Schema/"Compilers">
=back
$obj-E<gt>B<compileAll>(['READER'|'WRITER'|'RW', [NAMESPACE]])
=over 4
See L<XML::Compile::Cache/"Compilers">
=back
$obj-E<gt>B<dataToXML>(NODE|REF-XML-STRING|XML-STRING|FILENAME|FILEHANDLE|KNOWN)
=over 4
See L<XML::Compile/"Compilers">
=back
$obj-E<gt>B<reader>(TYPE|NAME, OPTIONS)
=over 4
See L<XML::Compile::Cache/"Compilers">
=back
$obj-E<gt>B<template>('XML'|'PERL', TYPE, OPTIONS)
=over 4
See L<XML::Compile::Schema/"Compilers">
=back
$obj-E<gt>B<writer>(TYPE|NAME)
=over 4
See L<XML::Compile::Cache/"Compilers">
=back
=head2 Administration
$obj-E<gt>B<declare>('READER'|'WRITER'|'RW', TYPE|ARRAY-of-TYPES, OPTIONS)
=over 4
See L<XML::Compile::Cache/"Administration">
=back
$obj-E<gt>B<elements>
=over 4
See L<XML::Compile::Schema/"Administration">
=back
$obj-E<gt>B<findName>(NAME)
=over 4
See L<XML::Compile::Cache/"Administration">
=back
$obj-E<gt>B<findSchemaFile>(FILENAME)
=over 4
See L<XML::Compile/"Administration">
=back
$obj-E<gt>B<importDefinitions>(XMLDATA, OPTIONS)
=over 4
See L<XML::Compile::Schema/"Administration">
=back
$obj-E<gt>B<knownNamespace>(NAMESPACE|PAIRS)
XML::Rewrite::Schema-E<gt>B<knownNamespace>(NAMESPACE|PAIRS)
=over 4
See L<XML::Compile/"Administration">
=back
$obj-E<gt>B<namespaces>
=over 4
See L<XML::Compile::Schema/"Administration">
=back
$obj-E<gt>B<printIndex>([FILEHANDLE], OPTIONS)
=over 4
See L<XML::Compile::Cache/"Administration">
=back
$obj-E<gt>B<types>
=over 4
See L<XML::Compile::Schema/"Administration">
=back
$obj-E<gt>B<walkTree>(NODE, CODE)
=over 4
See L<XML::Compile/"Administration">
=back
=head2 Processing
$obj-E<gt>B<buildDOM>(TYPE, DATA, OPTIONS)
=over 4
See L<XML::Rewrite/"Processing">
=back
$obj-E<gt>B<process>(XMLDATA, OPTIONS)
=over 4
See L<XML::Rewrite/"Processing">
=back
$obj-E<gt>B<repairXML>(TYPE, XML, DETAILS)
=over 4
See L<XML::Rewrite/"Processing">
=back
$obj-E<gt>B<transformData>(TYPE, DATA, DETAILS)
=over 4
See L<XML::Rewrite/"Processing">
=back
=head1 DETAILS
=head1 DIAGNOSTICS
Error: cannot find pre-installed name-space files
=over 4
Use C<$ENV{SCHEMA_LOCATION}> or L<new(schema_dirs)|XML::Compile/"Constructors"> to express location
of installed name-space files, which came with the L<XML::Compile|XML::Compile>
distribution package.
=back
Error: don't known how to interpret XML data
=over 4
=back
=head1 SEE ALSO
This module is part of XML-Rewrite distribution version 0.10,
built on August 11, 2008. Website: F<http://perl.overmeer.net/xml-compile/>
All modules in this suite:
L<XML::Compile>,
L<XML::Compile::SOAP>,
L<XML::Compile::SOAP::Daemon>,
L<XML::Compile::Tester>,
L<XML::Compile::Cache>,
L<XML::Rewrite>,
L<XML::Compile::Dumper>.
Please post questions or ideas to the mailinglist at
F<http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/xml-compile>
For life contact with other developers, visit the C<#xml-compile> channel
on C<irc.perl.org>.
=head1 LICENSE
Copyrights 2008 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 F<http://www.perl.com/perl/misc/Artistic.html>