Mercurial > pub > Impl
annotate Lib/IMPL/DOM/Schema.pm @ 16:75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
| author | Sergey | 
|---|---|
| date | Tue, 08 Sep 2009 17:29:07 +0400 | 
| parents | 16795016e70b | 
| children | 7f88e01b58f8 | 
| rev | line source | 
|---|---|
| 15 | 1 package IMPL::DOM::Schema; | 
| 2 use strict; | |
| 3 use warnings; | |
| 4 | |
| 5 use base qw(IMPL::DOM::Document); | |
| 6 use IMPL::Class::Property; | |
| 7 use IMPL::Class::Property::Direct; | |
| 8 | |
| 9 __PACKAGE__->PassThroughArgs; | |
| 10 | |
| 11 BEGIN { | |
| 12 private _direct property _TypesMap => prop_all; | |
| 13 } | |
| 14 | |
| 16 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 15 sub ResoveType { | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 16 $_[0]->{$_TypesMap}->{$_[1]}; | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 17 } | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 18 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 19 sub MetaSchema { | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 20 my $schema = new IMPL::DOM::Schema(nodeName => 'schema'); | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 21 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 22 $schema->appendRange( | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 23 IMPL::DOM::Schema::ComplexNode->new(nodeName => 'schema')->appendRange( | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 24 IMPL::DOM::Schema::NodeSet->new()->appendRange( | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 25 IMPL::DOM::Schema::Node->new(nodeName => 'ComplexNode', type => 'ComplexNode', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 26 IMPL::DOM::Schema::Node->new(nodeName => 'ComplexType', type => 'ComplexType', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 27 IMPL::DOM::Schema::Node->new(nodeName => 'SimpleNode', type => 'SimpleNode', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 28 IMPL::DOM::Schema::Node->new(nodeName => 'SimpleType', type => 'SimpleType', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 29 IMPL::DOM::Schema::SimpleNode->new(nodeName => 'Node', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 30 IMPL::DOM::Schema::SimpleNode->new(nodeName => 'Include', minOccur => 0, maxOccur=>'unbounded') | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 31 ) | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 32 ), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 33 IMPL::DOM::Schema::ComplexType->new(type => 'NodeSet', native => 'IMPL::DOM::Schema::NodeSet')->appendRange( | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 34 IMPL::DOM::Schema::NodeSet->new()->appendRange( | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 35 IMPL::DOM::Schema::Node->new(nodeName => 'ComplexNode', type => 'ComplexNode', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 36 IMPL::DOM::Schema::Node->new(nodeName => 'SimpleNode', type => 'SimpleNode', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 37 IMPL::DOM::Schema::SimpleNode->new(nodeName => 'Node', minOccur => 0, maxOccur=>'unbounded'), | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 38 ) | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 39 ) | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 40 ) | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 41 } | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 42 | 
| 15 | 43 1; | 
| 16 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 44 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 45 __END__ | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 46 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 47 =pod | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 48 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 49 =head1 META SCHEMA | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 50 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 51 , | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 52 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 53 <schema> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 54 <ComplexNode nodeName="schema"> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 55 <NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 56 <Node minOcuur="0" maxOccur="unbounded" nodeName="ComplexNode" type="ComplexNode"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 57 <Node minOcuur="0" maxOccur="unbounded" nodeName="SimpleNode" type="SimpleNode"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 58 <Node minOcuur="0" maxOccur="unbounded" nodeName="ComplexType" type="ComplexType"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 59 <Node minOcuur="0" maxOccur="unbounded" nodeName="SimpleType" type="SimpleType"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 60 <SimpleNode minOcuur="0" maxOccur="unbounded" nodeName="Node"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 61 <SimpleNode minOcuur="0" maxOccur="unbounded" nodeName="Include"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 62 </NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 63 </ComplexNode> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 64 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 65 <ComplexType type="NodeContainer"> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 66 <NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 67 <Node minOcuur="0" maxOccur="unbounded" nodeName="ComplexNode" type="ComplexNode"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 68 <Node minOcuur="0" maxOccur="unbounded" nodeName="SimpleNode" type="SimpleNode"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 69 <SimpleNode minOcuur="0" maxOccur="unbounded" nodeName="Node"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 70 </NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 71 </ComplexType> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 72 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 73 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 74 <ComplexType type="ComplexType"> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 75 <NodeList> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 76 <Node nodeName="NodeSet" type="NodeContainer" minOcuur=0/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 77 <Node nodeName="NodeList" type="NodeContainer" minOccur=0/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 78 <AnyNode minOccur="0" maxOccur="unbounded"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 79 </NodeList> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 80 </ComplexType> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 81 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 82 <ComplexType type="ComplexNode"> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 83 <NodeList> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 84 <Node nodeName="NodeSet" type="NodeContainer" minOcuur=0/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 85 <Node nodeName="NodeList" type="NodeContainer" minOccur=0/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 86 <AnyNode minOccur="0" maxOccur="unbounded"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 87 </NodeList> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 88 </ComplexType> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 89 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 90 <ComplexType type="SimpleNode"> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 91 <NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 92 <AnyNode minOccur=0 maxOccur="unbounded"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 93 </NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 94 </ComplexType> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 95 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 96 <ComplexType type="SimpleType"> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 97 <NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 98 <AnyNode minOccur=0 maxOccur="unbounded"/> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 99 </NodeSet> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 100 </ComplexType> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 101 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 102 </schema> | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 103 | 
| 
75d55f4ee263
Окончательная концепция описания схем и построения DOM документов
 Sergey parents: 
15diff
changeset | 104 =cut | 
