Changeset 2341


Ignore:
Timestamp:
28/03/07 13:15:45 (12 years ago)
Author:
domlowe
Message:

Correct ordering of csml elements in parser

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/csml/parser.py

    r2327 r2341  
    4646 
    4747def addatts(obj, atts): 
    48   ''' merges self.ATTRIBUTES''' 
     48  ''' merges self.ATTRIBUTES  of inherited classes''' 
    4949  if hasattr(obj, 'ATTRIBUTES'): 
    5050    for att in atts: 
     
    5252  else: 
    5353    obj.ATTRIBUTES=atts 
     54 
     55def addelems(obj, elems): 
     56  ''' merges self.elems of inherited classes''' 
     57  if hasattr(obj, 'ELEMORDER'): 
     58    for elem in elems: 
     59        obj.ELEMORDER.append(elems) 
     60  else: 
     61    obj.ELEMORDER=elems 
    5462 
    5563 
     
    159167    # self.CHILDREN (recursive - calls the toXML method of children 
    160168        for att in self.__dict__: 
    161             if att not in ['ATTRIBUTES', 'CHILDREN', 'CONTENT']: 
    162                 for child in self.CHILDREN: 
     169            if att not in ['ATTRIBUTES', 'CHILDREN', 'CONTENT','ELEMORDER']: 
     170                for child in self.ELEMORDER: 
    163171                    appendLater=False 
    164172                    if child == att: 
     
    215223        for frag in csmlfrag[:]: 
    216224            #for each child element 
    217             #iterate through expected CHILDREN 
     225            #iterate through expected CHILDREN to find match 
    218226            for child in self.CHILDREN: 
    219                 #get element name 
    220227                if len(self.CHILDREN[child])>=3: 
    221228                    ename = self.CHILDREN[child][2] 
    222229                    ename2 = self.CHILDREN[child][0] 
    223                      
    224230                else: 
    225231                    ename = self.CHILDREN[child][0]  
     
    280286        a=[GML('id'), GML('name')] 
    281287        addatts(self,a) 
    282         csElement.__init__(self,**kwargs) 
    283         children={'metaDataProperty':[GML('metaDataProperty'),'csString'],'description':[GML('description'),'csString']} 
     288        elems=['metaDataProperty', 'description'] 
     289        addelems(self,elems) 
     290        csElement.__init__(self,**kwargs) 
     291        children={elems[0]:[GML('metaDataProperty'),'csString'],elems[1]:[GML('description'),'csString']} 
    284292        addchildren(self,children) 
    285293         
     
    316324class ArrayDescriptor(AbstractGML, csElement): 
    317325    def __init__(self,**kwargs): 
    318         AbstractGML.__init__(self,**kwargs) 
    319         children={'arraySize':[CSML('arraySize'), 'csString'], 'uom':[CSML('uom'),'csString'], 'numericType':[CSML('numericType'),'csString'], 'regExpTransform':[CSML('regExpTransform'),'csString'], 'numericTransform':[CSML('numericTransform'),'csString']} 
     326        elems=['arraySize', 'uom', 'numericType','regExpTransform','numericTransform'] 
     327        addelems(self,elems) 
     328        AbstractGML.__init__(self,**kwargs) 
     329        children={elems[0]:[CSML('arraySize'), 'csString'], elems[1]:[CSML('uom'),'csString'], elems[2]:[CSML('numericType'),'csString'], elems[3]:[CSML('regExpTransform'),'csString'], elems[4]:[CSML('numericTransform'),'csString']} 
    320330        addchildren(self,children) 
    321331        csElement.__init__(self,**kwargs) 
     
    323333class GridEnvelope(AbstractGML,SRSReferenceGroup, csElement): 
    324334    def __init__(self, **kwargs): 
     335        elems=['low', 'high'] 
     336        addelems(self,elems) 
    325337        SRSReferenceGroup.__init__(self,**kwargs) 
    326338        AbstractGML.__init__(self,**kwargs) 
    327         children={'low':[GML('low'), 'csString'],'high':[GML('high'), 'csString']} 
     339        children={elems[0]:[GML('low'), 'csString'],elems[1]:[GML('high'), 'csString']} 
    328340        addchildren(self,children) 
    329341        csElement.__init__(self,**kwargs) 
     
    331343class Envelope(AbstractGML,SRSReferenceGroup, csElement): 
    332344    def __init__(self, **kwargs): 
     345        elems=['lowerCorner','upperCorner'] 
     346        addelems(self,elems) 
    333347        SRSReferenceGroup.__init__(self,**kwargs) 
    334348        AbstractGML.__init__(self,**kwargs) 
    335         children={'lowerCorner':[GML('lowerCorner'), 'csString'],'upperCorner':[GML('upperCorner'), 'csString']} 
     349        children={elems[0]:[GML('lowerCorner'), 'csString'],elems[1]:[GML('upperCorner'), 'csString']} 
    336350        addchildren(self,children) 
    337351        csElement.__init__(self,**kwargs) 
     
    339353class EnvelopeWithTimePeriod(Envelope): 
    340354    def __init__(self, **kwargs): 
     355        elems=['beginPosition', 'endPosition'] 
     356        addelems(self,elems) 
    341357        Envelope.__init__(self,**kwargs) 
    342         children={'beginPosition':[GML('beginPosition'), 'csString'], 'endPosition':[GML('endPosition'), 'csString']} 
     358        children={elems[0]:[GML('beginPosition'), 'csString'], elems[1]:[GML('endPosition'), 'csString']} 
    343359        addchildren(self,children) 
    344360        csElement.__init__(self,**kwargs) 
     
    346362class AbstractFeature(AbstractGML,csElement): 
    347363    def __init__(self, **kwargs): 
     364        elems=['boundedBy'] 
     365        addelems(self,elems) 
    348366        AbstractGML.__init__(self,**kwargs) 
    349367        #this pattern works but can only accept EnvelopeWithTimePeriod for the boundedBy, 
    350368        #which is probably ok     
    351         children={'boundedBy':[GML('EnvelopeWithTimePeriod'), 'EnvelopeWithTimePeriod', GML('boundedBy')]} 
     369        children={elems[0]:[GML('EnvelopeWithTimePeriod'), 'EnvelopeWithTimePeriod', GML('boundedBy')]} 
    352370        addchildren(self,children) 
    353371        csElement.__init__(self,**kwargs) 
     
    366384class AggregatedArray(ArrayDescriptor,csElement): 
    367385    def __init__(self, **kwargs): 
     386        elems=['aggType', 'aggIndex', 'components'] 
     387        addelems(self,elems) 
    368388        ArrayDescriptor.__init__(self,**kwargs) 
    369         children={'aggType':[CSML('aggType'),'csString'], 'aggIndex':[CSML('aggIndex'),'csString'],'components':[FILEFORMATS, 'ArrayDescriptor',CSML('component')]} 
     389        children={elems[0]:[CSML('aggType'),'csString'], elems[1]:[CSML('aggIndex'),'csString'],elems[2]:[FILEFORMATS, 'ArrayDescriptor',CSML('component')]} 
    370390        addchildren(self,children) 
    371391        csElement.__init__(self,**kwargs) 
     
    373393class MeasureOrNullList(AbstractGML,csElement): 
    374394    def __init__(self, **kwargs): 
     395        elems=['__insertedExtract']  # should this be here ? check 
     396        addelems(self,elems) 
    375397        AbstractGML.__init__(self,**kwargs) 
    376398        #note __insertedExtract is used in resolving xlinks and shouldn't be written to directly (except by the code which handles the xlink resolutions) 
    377         children={'__insertedExtract':[FILEFORMATS,'FileExtract',CSML('__insertedExtract')]} 
     399        children={elems[0]:[FILEFORMATS,'FileExtract',CSML('__insertedExtract')]} 
    378400        addchildren(self,children) 
    379401        a =['uom']  
     
    384406class CompositeValue(AbstractGML,csElement): 
    385407    def __init__(self, **kwargs): 
    386         AbstractGML.__init__(self,**kwargs) 
    387         children={'measures':[GML('measure'),'csString',GML('valueComponents')]} 
     408        elems=['measures'] 
     409        addelems(self,elems) 
     410        AbstractGML.__init__(self,**kwargs) 
     411        children={elems[0]:[GML('measure'),'csString',GML('valueComponents')]} 
    388412        addchildren(self,children) 
    389413        csElement.__init__(self,**kwargs) 
     
    392416    #THIS IS INCOMPLETE  
    393417    def __init__(self, **kwargs): 
    394         AbstractGML.__init__(self,**kwargs) 
    395         children={'doubleOrNullTupleList':[GML('doubleOrNullTupleList'),'csString'],'rangeParameters':[GML('CompositeValue'), 'CompositeValue', GML('rangeParameters')]} 
     418        elems=['doubleOrNullTupleList','rangeParameters'] 
     419        addelems(self,elems) 
     420        AbstractGML.__init__(self,**kwargs) 
     421        children={elems[0]:[GML('doubleOrNullTupleList'),'csString'],elems[1]:[GML('CompositeValue'), 'CompositeValue', GML('rangeParameters')]} 
    396422        addchildren(self,children) 
    397423        csElement.__init__(self,**kwargs) 
     
    399425class ValueComponent(AbstractGML, AssociationAttributeGroup, csElement): 
    400426    def __init__(self, **kwargs): 
     427        elems=['quantityList'] 
     428        addelems(self,elems) 
    401429        AbstractGML.__init__(self,**kwargs) 
    402430        AssociationAttributeGroup.__init__(self,**kwargs) 
    403         children=children={'quantityList':[GML('QuantityList'), 'MeasureOrNullList']} 
     431        children=children={elems[0]:[GML('QuantityList'), 'MeasureOrNullList']} 
    404432        addchildren(self,children) 
    405433        csElement.__init__(self,**kwargs) 
     
    407435class ValueArray(AbstractGML, csElement): 
    408436    def __init__(self, **kwargs): 
     437        elems=['valueComponent'] 
     438        addelems(self,elems) 
    409439        AbstractGML.__init__(self,**kwargs) 
    410440        #this is a bit of a diversion from the object/property pattern but is necessary to  
    411441        #make valueComponent a class so valueComponent can have xlink attributes 
    412         children=children={'valueComponent':[GML('valueComponent'), 'ValueComponent', ]} 
     442        children=children={elems[0]:[GML('valueComponent'), 'ValueComponent', ]} 
    413443        addchildren(self,children) 
    414444        csElement.__init__(self,**kwargs) 
     
    419449        AbstractGML.__init__(self,**kwargs) 
    420450        AssociationAttributeGroup.__init__(self,**kwargs) 
    421         children={'quantityList':[GML('QuantityList'), 'MeasureOrNullList'],        'dataBlock':[GML('DataBlock'),'DataBlock'],'arrayDescriptor':[FILEFORMATS, 'ArrayDescriptor'],  'aggregatedArray':[CSML('AggregatedArray'), 'AggregatedArray'], 
     451        elems=['quantityList', 'dataBlock', 'arrayDescriptor'] 
     452        addelems(self,elems) 
     453        children={elems[0]:[GML('QuantityList'), 'MeasureOrNullList'],        elems[1]:[GML('DataBlock'),'DataBlock'],'arrayDescriptor':[FILEFORMATS, 'ArrayDescriptor'],  elems[2]:[CSML('AggregatedArray'), 'AggregatedArray'], 
    422454        'valueArray':[GML('ValueArray'),'ValueArray']} 
    423455        addchildren(self,children) 
     
    428460        AbstractGML.__init__(self,**kwargs) 
    429461        SRSReferenceGroup.__init__(self,**kwargs) 
    430         children={'pointMember':[GML('pointMember'), 'csString'],'pointMembers':[GML('pointMember'), 'csString']} 
     462        elems=['pointMember','pointMembers'] 
     463        addelems(self,elems) 
     464        children={elems[0]:[GML('pointMember'), 'csString'],elems[0]:[GML('pointMember'), 'csString']} 
    431465        addchildren(self,children) 
    432466        csElement.__init__(self,**kwargs) 
     
    436470        AbstractGML.__init__(self,**kwargs) 
    437471        SRSReferenceGroup.__init__(self,**kwargs) 
    438         children={'pos':[GML('pos'), 'csString'],'coordinates':[GML('coordinates'), 'csString']} 
     472        elems=['pos','coordinates'] 
     473        addelems(self,elems) 
     474        children={elems[0]:[GML('pos'), 'csString'],elems[1]:[GML('coordinates'), 'csString']} 
    439475        addchildren(self,children) 
    440476        csElement.__init__(self,**kwargs) 
     
    485521    def __init__(self, **kwargs): 
    486522        AbstractGML.__init__(self,**kwargs) 
    487         children={'coordinateList':[CSML('coordinateList'),'csString'], 'timePositionList':[CSML('timePositionList'),'TimePositionList'],'__insertedExtract':[FILEFORMATS,'FileExtract',CSML('__insertedExtract')]} 
     523        elems=['coordinateList', 'timePositionList','__insertedExtract'] 
     524        addelems(self,elems) 
     525        children={elems[0]:[CSML('coordinateList'),'csString'], elems[1]:[CSML('timePositionList'),'TimePositionList'],elems[2]:[FILEFORMATS,'FileExtract',CSML('__insertedExtract')]} 
    488526        addchildren(self,children) 
    489527        a=['frame'] 
    490528        addatts(self,a) 
    491529        csElement.__init__(self,**kwargs) 
    492 children={'descriptors':[[CSML('NetCDFExtract'),CSML('AggregatedArray')], 'FileExtract', CSML('descriptor'),1]} 
    493530 
    494531 
     
    497534    def __init__(self, **kwargs): 
    498535        AbstractGML.__init__(self,**kwargs) 
    499         children={'coordAxisLabel':[CSML('coordAxisLabel'), 'csString'], 'coordAxisValues':[CSML('SpatialOrTemporalPositionList'),'SpatialOrTemporalPositionList',CSML('coordAxisValues')], 'gridAxesSpanned':[CSML('gridAxesSpanned'), 'csString'], 'sequenceRule':[CSML('sequenceRule'),'SequenceRule']} 
     536        elems=['coordAxisLabel', 'coordAxisValues', 'SpatialOrTemporalPositionList', 'gridAxesSpanned', 'sequenceRule'] 
     537        addelems(self,elems) 
     538        children={elems[0]:[CSML('coordAxisLabel'), 'csString'], elems[1]:[CSML('SpatialOrTemporalPositionList'),elems[2],CSML('coordAxisValues')], elems[3]:[CSML('gridAxesSpanned'), 'csString'], elems[4]:[CSML('sequenceRule'),'SequenceRule']} 
    500539        addchildren(self,children) 
    501540        csElement.__init__(self,**kwargs) 
     
    512551    def __init__(self, **kwargs): 
    513552        AbstractGML.__init__(self,**kwargs) 
    514         children={'posList':[CSML('posList'),'csString'],'sequenceRule':[CSML('sequenceRule'),'SequenceRule']} 
     553        elems=['posList', 'sequenceRule'] 
     554        addelems(self,elems) 
     555        children={elems[0]:[CSML('posList'),'csString'],elems[1]:[CSML('sequenceRule'),'SequenceRule']} 
    515556        addchildren(self,children) 
    516557        csElement.__init__(self,**kwargs) 
     
    518559class TimePositionList(AbstractGML,csElement): 
    519560    def __init__(self,**kwargs): 
     561        elems=[] 
     562        addelems(self,elems) 
    520563        a=['frame', 'calendarEraName','indeterminatePosition'] 
    521564        addatts(self,a) 
     
    539582        </gml:ordinate> ''' 
    540583        AbstractGML.__init__(self,**kwargs) 
    541         children={'gridOrdinates':[CSML('GridOrdinateDescription'), 'GridOrdinateDescription',CSML('gridOrdinate'),1], 'gridPoints':[CSML('GridPointDescription'),'GridPointDescription',CSML('gridPoints')]} 
     584        elems=['gridOrdinates' , 'gridPoints'] 
     585        addelems(self,elems) 
     586        children={elems[0]:[CSML('GridOrdinateDescription'), 'GridOrdinateDescription',CSML('gridOrdinate'),1], elems[1]:[CSML('GridPointDescription'),'GridPointDescription',CSML('gridPoints')]} 
    542587        addchildren(self,children) 
    543588        csElement.__init__(self,**kwargs) 
     
    549594        SRSReferenceGroup.__init__(self,**kwargs) 
    550595        SRSInformationGroup.__init__(self,**kwargs) 
    551         children={'coordTransformTable':[CSML('GridCoordinatesTable'), 'GridCoordinatesTable', CSML('coordTransformTable')],'aLabels':[CSML('axisLabels'),'csString'], 'limits':[GML('GridEnvelope'),'GridEnvelope',CSML('limits')]} 
     596        elems=['coordTransformTable','aLabels','limits'] 
     597        addelems(self,elems) 
     598        children={elems[0]:[CSML('GridCoordinatesTable'), 'GridCoordinatesTable', CSML('coordTransformTable')],elems[1]:[CSML('axisLabels'),'csString'], elems[2]:[GML('GridEnvelope'),'GridEnvelope',CSML('limits')]} 
    552599        addchildren(self,children) 
    553600        csElement.__init__(self,**kwargs) 
     
    556603    def __init__(self, **kwargs): 
    557604        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    558         children={'referenceableGridDomain':[CSML('ReferenceableGrid'),'ReferenceableGrid' ,CSML('referenceableGridDomain') ]} 
     605        elems=[referenceableGridDomain] 
     606        addelems(self,elems) 
     607        children={elems[0]:[CSML('ReferenceableGrid'),'ReferenceableGrid' ,CSML('referenceableGridDomain') ]} 
    559608        addchildren(self,children) 
    560609        csElement.__init__(self,**kwargs) 
     
    563612    def __init__(self, **kwargs): 
    564613        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    565         children={'alternatePointDomain':[GML('Point'),'Point', CSML('alternatePointDomain')], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     614        elems=['alternatePointDomain','rangeSet','coverageFunction'] 
     615        addelems(self,elems) 
     616        children={elems[0]:[GML('Point'),'Point', CSML('alternatePointDomain')], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    566617        addchildren(self,children) 
    567618        csElement.__init__(self,**kwargs) 
     
    570621    def __init__(self, **kwargs): 
    571622        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    572         children={'profileDomain':[CSML('ProfileDomain'),'ProfileDomain' ,CSML('profileDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     623        elems=['profileDomain', 'rangeSet' ,'coverageFunction'] 
     624        addelems(self,elems) 
     625        children={elems[0]:[CSML('ProfileDomain'),'ProfileDomain' ,CSML('profileDomain') ], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    573626        addchildren(self,children) 
    574627        csElement.__init__(self,**kwargs) 
     
    577630    def __init__(self, **kwargs): 
    578631        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    579         children={'pointDomain':[CSML('PointDomain'),'PointDomain' ,CSML('pointDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     632        elems=['pointDomain','rangeSet', 'coverageFunction'] 
     633        addelems(self,elems) 
     634        children={elems[0]:[CSML('PointDomain'),'PointDomain' ,CSML('pointDomain') ], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    580635        addchildren(self,children) 
    581636        csElement.__init__(self,**kwargs) 
     
    584639    def __init__(self, **kwargs): 
    585640        AbstractGML.__init__(self,**kwargs) 
    586         children={'timePositionList':[CSML('timePositionList'), 'csString']} 
     641        elems=['timePositionList'] 
     642        addelems(self,elems) 
     643        children={elems[0]:[CSML('timePositionList'), 'csString']} 
    587644        addchildren(self,children) 
    588645        csElement.__init__(self,**kwargs) 
     
    591648    def __init__(self, **kwargs): 
    592649        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    593         children={'pointSeriesDomain':[CSML('TimeSeries'),'TimeSeries' ,CSML('pointSeriesDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     650        elems=['pointSeriesDomain','rangeSet','coverageFunction'] 
     651        addelems(self,elems) 
     652        children={elems[0]:[CSML('TimeSeries'),'TimeSeries' ,CSML('pointSeriesDomain') ], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    594653        addchildren(self,children) 
    595654        csElement.__init__(self,**kwargs) 
     
    606665    def __init__(self, **kwargs): 
    607666        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    608         children={'profileSeriesDomain':[CSML('ProfileSeriesDomain'),'ProfileSeriesDomain' ,CSML('profileSeriesDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     667        elems=['profileSeriesDomain', 'rangeSet', 'coverageFunction'] 
     668        addelems(self,elems) 
     669        children={elems[0]:[CSML('ProfileSeriesDomain'),'ProfileSeriesDomain' ,CSML('profileSeriesDomain') ], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    609670        addchildren(self,children) 
    610671        csElement.__init__(self,**kwargs) 
     
    621682    def __init__(self, **kwargs): 
    622683        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    623         children={'sectionDomain':[CSML('SectionDomain'),'SectionDomain' ,CSML('sectionDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     684        elems=['sectionDomain', 'rangeSet' , 'coverageFunction'] 
     685        addelems(self,elems) 
     686        children={elems[0]:[CSML('SectionDomain'),'SectionDomain' ,CSML('sectionDomain') ],elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    624687        addchildren(self,children) 
    625688        csElement.__init__(self,**kwargs) 
     
    636699    def __init__(self, **kwargs): 
    637700        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    638         children={'trajectoryDomain':[CSML('TrajectoryDomain'),'TrajectoryDomain' ,CSML('trajectoryDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     701        elems=['trajectoryDomain', 'rangeSet', 'coverageFunction'] 
     702        addelems(self,elems) 
     703        children={elems[0]:[CSML('TrajectoryDomain'),'TrajectoryDomain' ,CSML('trajectoryDomain') ], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    639704        addchildren(self,children) 
    640705        csElement.__init__(self,**kwargs) 
     
    651716    def __init__(self, **kwargs): 
    652717        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    653         children={'scanningRadarDomain':[CSML('ScanningRadarDomain'),'ScanningRadarDomain' ,CSML('scanningRadarDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     718        elems=['scanningRadarDomain', 'rangeSet','coverageFunction'] 
     719        addelems(self,elems) 
     720        children={elems[0]:[CSML('ScanningRadarDomain'),'ScanningRadarDomain' ,CSML('scanningRadarDomain') ], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    654721        addchildren(self,children) 
    655722        csElement.__init__(self,**kwargs) 
     
    667734    def __init__(self, **kwargs): 
    668735        AbstractDiscreteCoverage.__init__(self,**kwargs) 
    669         children={'gridSeriesDomain':[CSML('GridSeriesDomain'),'GridSeriesDomain' ,CSML('gridSeriesDomain') ], 'rangeSet':[GML('rangeSet'), 'RangeSet'],'coverageFunction':[GML('coverageFunction'),'csString']} 
     736        elems=['gridSeriesDomain', 'rangeSet', 'coverageFunction'] 
     737        addelems(self,elems) 
     738        children={elems[0]:[CSML('GridSeriesDomain'),'GridSeriesDomain' ,CSML('gridSeriesDomain') ], elems[1]:[GML('rangeSet'), 'RangeSet'],elems[2]:[GML('coverageFunction'),'csString']} 
    670739        addchildren(self,children) 
    671740        csElement.__init__(self,**kwargs) 
     
    674743    def __init__(self, **kwargs): 
    675744        AbstractFeature.__init__(self,**kwargs) 
    676         children={'location':[CSML('location'), 'csString'],'time':[CSML('time'), 'csString'], 'value':[CSML('AlternatePointCoverage'), 'AlternatePointCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     745        elems=['location', 'time', 'value','parameter'] 
     746        addelems(self,elems) 
     747        children={elems[0]:[CSML('location'), 'csString'],elems[1]:[CSML('time'), 'csString'], elems[2]:[CSML('AlternatePointCoverage'), 'AlternatePointCoverage', CSML('value')],elems[3]:[CSML('parameter'), 'Phenomenon']} 
    677748        addchildren(self,children) 
    678749        csElement.__init__(self,**kwargs) 
     
    688759    def __init__(self, **kwargs): 
    689760        AbstractFeature.__init__(self,**kwargs) 
    690         children={'location':[CSML('location'), 'DirectPositionList'],'time':[CSML('time'), 'csString'], 'value':[CSML('PointCoverage'), 'PointCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     761        elems=['location', 'time', 'value','parameter'] 
     762        addelems(self,elems) 
     763        children={elems[0]:[CSML('location'), 'DirectPositionList'],elems[1]:[CSML('time'), 'csString'], elems[2]:[CSML('PointCoverage'), 'PointCoverage', CSML('value')], elems[3]:[CSML('parameter'), 'Phenomenon']} 
    691764        addchildren(self,children) 
    692765        csElement.__init__(self,**kwargs) 
     
    695768    def __init__(self, **kwargs): 
    696769        AbstractFeature.__init__(self,**kwargs) 
    697         children={'time':[CSML('time'), 'csString'], 'value':[CSML('MultiPointCoverage'), 'MultiPointCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     770        elems=['time', 'value', 'parameter'] 
     771        addelems(self,elems) 
     772        children={elems[0]:[CSML('time'), 'csString'], elems[1]:[CSML('MultiPointCoverage'), 'MultiPointCoverage', CSML('value')], elems[2]:[CSML('parameter'), 'Phenomenon']} 
    698773        addchildren(self,children) 
    699774        csElement.__init__(self,**kwargs) 
     
    703778    def __init__(self, **kwargs): 
    704779        AbstractFeature.__init__(self,**kwargs) 
    705         children={'location':[CSML('location'), 'csString'], 'value':[CSML('PointSeriesCoverage'), 'PointSeriesCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     780        elems=['location','value','parameter'] 
     781        addelems(self,elems) 
     782        children={elems[0]:[CSML('location'), 'csString'], elems[1]:[CSML('PointSeriesCoverage'), 'PointSeriesCoverage', CSML('value')], elems[2]:[CSML('parameter'), 'Phenomenon']} 
    706783        addchildren(self,children) 
    707784        csElement.__init__(self,**kwargs) 
     
    711788    def __init__(self, **kwargs): 
    712789        AbstractFeature.__init__(self,**kwargs) 
    713         children={'time':[CSML('time'), 'csString'], 'value':[CSML('ReferenceableGridCoverage'), 'ReferenceableGridCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     790        elems=['time', 'value', 'parameter'] 
     791        addelems(self,elems) 
     792        children={elems[0]:[CSML('time'), 'csString'], elems[1]:[CSML('ReferenceableGridCoverage'), 'ReferenceableGridCoverage', CSML('value')], elems[2]:[CSML('parameter'), 'Phenomenon']} 
    714793        addchildren(self,children) 
    715794        csElement.__init__(self,**kwargs) 
     
    718797    def __init__(self, **kwargs): 
    719798        AbstractFeature.__init__(self,**kwargs) 
    720         children={'value':[CSML('GridSeriesCoverage'), 'GridSeriesCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     799        elems=['value','parameter'] 
     800        addelems(self,elems) 
     801        children={elems[0]:[CSML('GridSeriesCoverage'), 'GridSeriesCoverage', CSML('value')],elems[0]:[CSML('parameter'), 'Phenomenon']} 
    721802        addchildren(self,children) 
    722803        csElement.__init__(self,**kwargs) 
     
    725806    def __init__(self, **kwargs): 
    726807        AbstractFeature.__init__(self,**kwargs) 
    727         children={'time':[CSML('time'), 'csString'],'location':[CSML('location'), 'csString'], 'value':[CSML('ProfileCoverage'), 'ProfileCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     808        elems=['time', 'location', 'value', 'parameter'] 
     809        addelems(self,elems) 
     810        children={elems[0]:[CSML('time'), 'csString'],elems[1]:[CSML('location'), 'csString'], elems[2]:[CSML('ProfileCoverage'), 'ProfileCoverage', CSML('value')], elems[3]:[CSML('parameter'), 'Phenomenon']} 
    728811        addchildren(self,children) 
    729812        csElement.__init__(self,**kwargs) 
     
    732815    def __init__(self, **kwargs): 
    733816        AbstractFeature.__init__(self,**kwargs) 
    734         children={'location':[CSML('location'), 'csString'], 'value':[CSML('ProfileSeriesCoverage'), 'ProfileSeriesCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     817        elems=['location', 'value', 'parameter'] 
     818        addelems(self,elems) 
     819        children={elems[0]:[CSML('location'), 'csString'], elems[1]:[CSML('ProfileSeriesCoverage'), 'ProfileSeriesCoverage', CSML('value')], elems[2]:[CSML('parameter'), 'Phenomenon']} 
    735820        addchildren(self,children) 
    736821        csElement.__init__(self,**kwargs) 
     
    739824    def __init__(self, **kwargs): 
    740825        AbstractFeature.__init__(self,**kwargs) 
    741         children={'location':[CSML('location'), 'csString'], 'profileLength':[CSML('profileLength'), 'csString'],'value':[CSML('ProfileSeriesCoverage'), 'ProfileSeriesCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     826        elems=['location', 'profileLength', 'value', 'parameter'] 
     827        addelems(self,elems) 
     828        children={elems[0]:[CSML('location'), 'csString'], elems[1]:[CSML('profileLength'), 'csString'],elems[2]:[CSML('ProfileSeriesCoverage'), 'ProfileSeriesCoverage', CSML('value')], elems[3]:[CSML('parameter'), 'Phenomenon']} 
    742829        addchildren(self,children) 
    743830        csElement.__init__(self,**kwargs) 
     
    746833    def __init__(self, **kwargs): 
    747834        AbstractFeature.__init__(self,**kwargs) 
    748         children={'stationLocations':[CSML('stationLocations'), 'csString'], 'stationTimes':[CSML('stationTimes'), 'csString'],'profileLength':[CSML('profileLength'),'csString'],'value':[CSML('SectionCoverage'), 'SectionCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     835        elems=['stationLocations', 'stationTimes', 'profileLength' 'value','parameter'] 
     836        addelems(self,elems) 
     837        children={elems[0]:[CSML('stationLocations'), 'csString'], elems[1]:[CSML('stationTimes'), 'csString'],elems[2]:[CSML('profileLength'),'csString'],elems[3]:[CSML('SectionCoverage'), 'SectionCoverage', CSML('value')], elems[4]:[CSML('parameter'), 'Phenomenon']} 
    749838        addchildren(self,children) 
    750839        csElement.__init__(self,**kwargs) 
     
    753842    def __init__(self, **kwargs): 
    754843        AbstractFeature.__init__(self,**kwargs) 
    755         children={'stationLocations':[CSML('stationLocations'), 'csString'], 'stationTimes':[CSML('stationTimes'), 'TimePositionList'],'value':[CSML('SectionCoverage'), 'SectionCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     844        elems=['stationLocations', 'stationTimes','value', 'parameter'] 
     845        addelems(self,elems) 
     846        children={elems[0]:[CSML('stationLocations'), 'csString'], elems[1]:[CSML('stationTimes'), 'TimePositionList'],elems[2]:[CSML('SectionCoverage'), 'SectionCoverage', CSML('value')], elems[3]:[CSML('parameter'), 'Phenomenon']} 
    756847        addchildren(self,children) 
    757848        csElement.__init__(self,**kwargs) 
     
    760851    def __init__(self, **kwargs): 
    761852        AbstractFeature.__init__(self,**kwargs) 
    762         children={'elevation':[CSML('elevation'), 'csString'], 'value':[CSML('ScanningRadarCoverage'), 'ScanningRadarCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     853        elems=['elevation','value', 'parameter'] 
     854        addelems(self,elems) 
     855        children={elems[0]:[CSML('elevation'), 'csString'], elems[1]:[CSML('ScanningRadarCoverage'), 'ScanningRadarCoverage', CSML('value')], elems[2]:[CSML('parameter'), 'Phenomenon']} 
    763856        addchildren(self,children) 
    764857        csElement.__init__(self,**kwargs) 
     
    768861    def __init__(self, **kwargs): 
    769862        AbstractFeature.__init__(self,**kwargs) 
    770         children={'eqCrossLon':[CSML('eqCrossLon'), 'csString'],'eqCrossTime':[CSML('eqCrossTime'), 'csString'], 'value':[CSML('ReferenceableGridCoverage'), 'ReferenceableGridCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     863        elems=['eqCrossLon', 'eqCrossTime', 'value', 'parameter'] 
     864        addelems(self,elems) 
     865        children={elems[0]:[CSML('eqCrossLon'), 'csString'],elems[1]:[CSML('eqCrossTime'), 'csString'], elems[2]:[CSML('ReferenceableGridCoverage'), 'ReferenceableGridCoverage', CSML('value')], elems[3]:[CSML('parameter'), 'Phenomenon']} 
    771866        addchildren(self,children) 
    772867        csElement.__init__(self,**kwargs) 
     
    775870    def __init__(self, **kwargs): 
    776871        AbstractFeature.__init__(self,**kwargs) 
    777         children={'value':[CSML('TrajectoryCoverage'), 'TrajectoryCoverage', CSML('value')], 'parameter':[CSML('parameter'), 'Phenomenon']} 
     872        elems=['value', 'parameter'] 
     873        addelems(self,elems) 
     874        children={elems[0]:[CSML('TrajectoryCoverage'), 'TrajectoryCoverage', CSML('value')], elems[1]:[CSML('parameter'), 'Phenomenon']} 
    778875        addchildren(self,children) 
    779876        csElement.__init__(self,**kwargs) 
     
    783880        AssociationAttributeGroup.__init__(self,**kwargs) 
    784881        AbstractGML.__init__(self,**kwargs) 
     882        elems=['fileNames'] 
     883        addelems(self,elems) 
    785884        addatts(self,[]) 
    786         children= {'fileNames':[CSML('fileNames'), 'csString']} 
     885        children= {elems[0]:[CSML('fileNames'), 'csString']} 
    787886        addchildren(self,children) 
    788887        csElement.__init__(self,**kwargs) 
     
    791890    def __init__(self,**kwargs): 
    792891        ArrayDescriptor.__init__(self,**kwargs) 
    793         children= {'fileName':[CSML('fileName'), 'csString'],  'fileList':[CSML('FileList'), 'FileList', CSML('fileList')],'fileListXLINK':[CSML('fileList'), 'csString']} 
     892        elems=['fileName', 'fileList', 'fileListXLINK'] 
     893        addelems(self,elems) 
     894        children= {elems[0]:[CSML('fileName'), 'csString'],  elems[1]:[CSML('FileList'), 'FileList', CSML('fileList')],elems[2]:[CSML('fileList'), 'csString']} 
    794895        addchildren(self,children) 
    795896        csElement.__init__(self,**kwargs) 
     
    798899    def __init__(self,**kwargs): 
    799900        FileExtract.__init__(self, **kwargs) 
    800         children={'variableName':[CSML('variableName'), 'csString']} 
     901        elems=['variableName'] 
     902        addelems(self,elems) 
     903        children={elems[0]:[CSML('variableName'), 'csString']} 
    801904        addchildren(self,children) 
    802905        csElement.__init__(self,**kwargs) 
     
    805908    def __init__(self,**kwargs): 
    806909        FileExtract.__init__(self, **kwargs) 
    807         children={'variableName':[CSML('variableName'), 'csString'], 'index':[CSML('index'),'csString']} 
     910        elems=['variableName', 'index'] 
     911        addelems(self,elems) 
     912        children={elems[0]:[CSML('variableName'), 'csString'],elems[1]:[CSML('index'),'csString']} 
    808913        addchildren(self,children) 
    809914        csElement.__init__(self,**kwargs) 
     
    812917    def __init__(self,**kwargs): 
    813918        addatts(self,[]) 
    814         children={'descriptors':[[CSML('NetCDFExtract'),CSML('AggregatedArray')], 'FileExtract', CSML('descriptor'),1]} 
     919        elems=['descriptors'] 
     920        addelems(self,elems) 
     921        children={elems[0]:[[CSML('NetCDFExtract'),CSML('AggregatedArray')], 'FileExtract', CSML('descriptor'),1]} 
    815922        addchildren(self,children) 
    816923        csElement.__init__(self,**kwargs) 
     
    819926    def __init__(self,**kwargs): 
    820927        AbstractFeatureCollection.__init__(self,**kwargs) 
    821         children={'featureMembers':[[CSML('GridFeature'), CSML('GridSeriesFeature'),CSML('PointFeature'),CSML('TrajectoryFeature'),CSML('ProfileFeature'),CSML('ProfileSeriesFeature'),CSML('RaggedProfileSeriesFeature'),CSML('RaggedSectionFeature'),CSML('SectionFeature'),CSML('ScanningRadarFeature'),CSML('PointSeriesFeature'),CSML('AlternatePointFeature')], 'AbstractFeature', CSML('featureMember'),1]} 
     928        elems=['featureMembers'] 
     929        addelems(self,elems) 
     930        children={elems[0]:[[CSML('GridFeature'), CSML('GridSeriesFeature'),CSML('PointFeature'),CSML('TrajectoryFeature'),CSML('ProfileFeature'),CSML('ProfileSeriesFeature'),CSML('RaggedProfileSeriesFeature'),CSML('RaggedSectionFeature'),CSML('SectionFeature'),CSML('ScanningRadarFeature'),CSML('PointSeriesFeature'),CSML('AlternatePointFeature')], 'AbstractFeature', CSML('featureMember'),1]} 
    822931        addchildren(self,children) 
    823932        csElement.__init__(self,**kwargs) 
     
    881990        a=[CSML('id')] 
    882991        addatts(self,a) 
    883         children = {'featureCollection':[CSML('CSMLFeatureCollection') ,'CSMLFeatureCollection'],'storageDescriptor':[CSML('CSMLStorageDescriptor'), 'CSMLStorageDescriptor']} 
     992        elems=['featureCollection','storageDescriptor'] 
     993        addelems(self,elems) 
     994        children = {elems[0]:[CSML('CSMLFeatureCollection') ,'CSMLFeatureCollection'],elems[1]:[CSML('CSMLStorageDescriptor'), 'CSMLStorageDescriptor']} 
    884995        addchildren(self,children) 
    885996        csElement.__init__(self,**kwargs) 
Note: See TracChangeset for help on using the changeset viewer.