Rose::DBx::Object::Metadata::Column::Xml - Xml binary large object column metadata.
use Rose::DBx::Object::Metadata::Column::Xml; $col = Rose::DBx::Object::Metadata::Column::Xml->new(...); $col->make_methods(...); ... You could add this XML type to your Rose::DB::Object::Metadata column type by creating your own Metadata object inherited from Rose::DB::Object::Metadata. See below: package Model::MyObjectMetadata; use Mojo::Base 'Rose::DB::Object::Metadata'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self->extend_column_type_classes; return $self; } sub extend_column_type_classes { my $self = shift; my $ctc = {$self->column_type_classes}; @$ctc{qw/xml xmltype ora_xmltype/} = ('Model::Object::Metadata::Column::Xml') x 3; # <------------- $self->column_type_classes(%$ctc); return $self; } 1; xml, xmltype, ora_xmltype - are aliases to the XML type. You can use any other names you want. Model DB class may look as follows: package Model::DB; use base 'Rose::DBx::AutoReconnect'; # <------------- if you need autoreconnection # Use a private registry for this class __PACKAGE__->use_private_registry; # Set the default domain and type __PACKAGE__->default_domain('production'); __PACKAGE__->default_type('main'); 1; Then you have to use your "brend new" MyObjectMetadata in your inherited from Rose::DB::Object class as below: package Model::Object; use Model::DB; use Model::MyObjectMetadata; # <------------- use Mojo::Base qw(Rose::DB::Object); sub init_db {return Model::DB->new_or_cached} sub meta_class {return "Model::ObjectMetadata"} # <------------- 1; And in Scheme class do as below: package Model::Scheme::AnySchemeClass; use base qw/Model::Object/; __PACKAGE__->meta->setup ( table => 'anytablename', columns => [ ..., my_xml_field => { type => 'xml'}, ... ], ... ); 1; And that's it!
Objects of this class store and manipulate metadata for long, variable-length character-based columns in a database. Column metadata objects store information about columns (data type, size, etc.) and are responsible for creating object methods that manipulate column values.
This class inherits from Rose::DB::Object::Metadata::Column::Text. Inherited methods that are not overridden will not be documented a second time here. See the Rose::DB::Object::Metadata::Column::Character documentation for more information.
get_set
Rose::DB::Object::MakeMethods::Generic, character, ...
get
See the Rose::DB::Object::Metadata::Column documentation for an explanation of this method map.
Returns "xml".
Andrey Chergik (andrey@chergik.ru)
Copyright (c) 2011 by Andrey Chergik. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
1;
To install Rose::DBx::Object::Metadata::Column::Xml, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Rose::DBx::Object::Metadata::Column::Xml
CPAN shell
perl -MCPAN -e shell install Rose::DBx::Object::Metadata::Column::Xml
For more information on module installation, please visit the detailed CPAN module installation guide.