NAME
XML::Pastor::Schema::Type - Ancestor of XML::Pastor::Schema::SimpleType and XML::Pastor::Schema::ComplexType.
WARNING
This module is used internally by XML::Pastor. You do not normally know much about this module to actually use XML::Pastor. It is documented here for completeness and for XML::Pastor developers. Do not count on the interface of this module. It may change in any of the subsequent releases. You have been warned.
ISA
This class descends from XML::Pastor::Schema::Object.
SYNOPSIS
my $type = XML::Pastor::Schema::Type->new();
$type->setFields(name => 'Country', scope=> 'global', nameIsAutoGenerated=>0);
$type->base('Location');
$type->derivedBy('extension');
print $type->name(); # prints 'Country'.
print $type->scope(); # prints 'global'.
print $type->base(); # prints 'Location'.
print $type->derivedBy(); # prints 'extension'.
DESCRIPTION
XML::Pastor::Schema::Type is an abstract ancestor of XML::Pastor schema type classes. That is, it is the ancestor of XML::Pastor::Schema::SimpleType and XML::Pastor::Schema::ComplexType.
It descends from XML::Pastor::Schema::Object. It adds a few more accessors to those that are already defined in this ancestor.
METHODS
CONSTRUCTORS
new()
$class->new(%fields)
CONSTRUCTOR, inherited from XML::Pastor::Schema::Object.
The new() constructor method instantiates a new object. It is inheritable. Normally, one does not call the new method on XML::Pastor::Schema::Object. One rather calls it on the descendant subclasses.
Any -named- fields that are passed as parameters are initialized to those values within the newly created object.
See "new()" in XML::Pastor::Schema::Object.
.
ACCESSORS
Inherited accessors
Several accessors are inherited by this class from its ancestor XML::Pastor::Schema::Object. Please see XML::Pastor::Schema::Object for a documentation of those.
Accessors defined here
base()
my $base = $object->base(); # GET
$object->base($base); # SET
This is a W3C property.
The base of the type, that is, its ancestor within the W3C schema. This value comes directly from the W3C schema and written by the schema parser.
baseClasses()
my $bases = $object->baseClasses(); # GET
$object->baseClasses($bases); # SET
The base classes of this type, when it is generated by XML::Pastor. This value is computed at schema model resolution time by "resolve()" in XML::Pastor::Schema::Model.
contentType()
my $ct = $object->contentType(); # GET
$object->contentType($ct); # SET
The contentType of a type is either 'simple' or 'complex'. This is filled in by the new() methods of the descendant classes.
derivedBy()
my $derivedBy = $object->derivedBy(); # GET
$object->derivedBy($derivedBy); # SET
A type is derived either by 'restriction' or 'extension'. This value is deduced at parse time by the schema parser.
final()
my $final = $object->final(); # GET
$object->final($final); # SET
This is a W3C property.
A type can be final for 'restriction' or 'extension'. This field specifies that. Currently, XML::Pastor does NOT use the value of this field.
BUGS & CAVEATS
There no known bugs at this time, but this doesn't mean there are aren't any. Note that, although some testing was done prior to releasing the module, this should still be considered alpha code. So use it at your own risk.
Note that there may be other bugs or limitations that the author is not aware of.
AUTHOR
Ayhan Ulusoy <dev(at)ulusoy(dot)name>
COPYRIGHT
Copyright (C) 2006-2007 Ayhan Ulusoy. All Rights Reserved.
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
See also XML::Pastor, XML::Pastor::ComplexType, XML::Pastor::SimpleType
If you are curious about the implementation, see XML::Pastor::Schema::Parser, XML::Pastor::Schema::Model, XML::Pastor::Generator.
If you really want to dig in, see XML::Pastor::Schema::Attribute, XML::Pastor::Schema::AttributeGroup, XML::Pastor::Schema::ComplexType, XML::Pastor::Schema::Element, XML::Pastor::Schema::Group, XML::Pastor::Schema::List, XML::Pastor::Schema::SimpleType, XML::Pastor::Schema::Type, XML::Pastor::Schema::Object