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