Ignore:
Timestamp:
20/03/06 16:17:52 (13 years ago)
Author:
domlowe
Message:

demoCreateCSML.py - example of creating CSML from scratch using parser

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI02-CSML/trunk/newparser/Parser.py

    r682 r683  
    125125    def __init__(self,val='',codeSpace=None): 
    126126        MutableString.__init__(self,val) 
     127        if val: 
     128            self.val=val 
    127129        if codeSpace: 
    128130            self.codeSpace = codeSpace 
    129131    def fromXML(self,csmlFrag): 
    130         self.data = csmlFrag.text 
    131  
     132        self.val = csmlFrag.text 
    132133# For some reason, namespace on 'codeSpace' attribute not being picked up... 
    133134#        if csmlFrag.attrib.has_key(GML('codeSpace')): 
     
    138139            self.codeSpace = csmlFrag.attrib['codeSpace'] 
    139140    def toXML(self,csmlFrag): 
    140         csmlFrag.text = self.data 
     141        if hasattr(self, 'val'): 
     142            csmlFrag.text = self.val 
    141143        if hasattr(self,'codeSpace'): 
    142144##            csmlFrag.attrib[GML('codeSpace')] = self.codeSpace 
     
    198200             
    199201class Definition(AbstractGML): 
    200     #Class definition, restricts AbstractGML 
    201     #gml:id is mandatory. 
     202    #Class Definition(AbstractGML), restricts AbstractGML 
     203    #gml:id is mandator 
     204    # AbstractGML: 
     205    # +id[1]: ID 
     206      
    202207    def __init__(self,*args,**kwargs): 
    203208        AbstractGML.__init__(self,*args,**kwargs) 
    204209    def fromXML(self,csmlFrag): 
    205210        AbstractGML.fromXML(self,csmlFrag) 
    206         #TO DO: how  best to handle this? 
     211        #TO DO: how  best to handle errors? 
    207212        if not hasattr(self,'id'): 
    208213            print 'gml:id mandatory value missing in ' + csmlFrag.tag 
     
    211216        csmlFrag=AbstractGML.toXML(self,csmlFrag) 
    212217        return csmlFrag 
    213      
    214      
     218 
    215219class CodeType(MutableString): 
    216220        #Class for gml:CodeType element 
    217         #+ attribute name="codeSpace" type="anyURI" use="optional" 
     221        # +codeSpace[0..1]:anyURI 
     222 
    218223    def __init__(self,val='',codeSpace=None): 
    219224        MutableString.__init__(self,val) 
     
    233238         
    234239class TimeIntervalLength: 
    235     #class for gml:TimeIntervalLength (decimal) 
    236     #n.b. have not implemented 'decimal' class 
    237     #+unit: gml:UnitType [1] 
    238     # +radix: posint [0...1] 
    239     # + factor :int [0...1] 
     240    # class for gml:TimeIntervalLength (decimal) 
     241    # n.b. have not implemented 'decimal' class 
     242    # +unit[1]: gml:UnitType  
     243    # +radix[0...1]: posint  
     244    # +factor[0...1] :int  
    240245    def __init__(self, unit=None, radix=None, factor=None,data=None): 
    241246        if unit: 
     
    468473    #Class for gml:Dictionary elements 
    469474    # + gml:definitionMembers [1....*] 
    470     def __init__(self,definitionMembers=None,*args,**kwargs): 
     475    def __init__(self, definitionMembers=None,*args,**kwargs): 
    471476        Definition.__init__(self,*args,**kwargs) 
    472477        if definitionMembers: 
     
    488493                elif subFrag.tag == GML('EngineeringCRS'): 
    489494                    definitionMember=EngineeringCRS() 
     495                    definitionMember.fromXML(subFrag) 
     496                    self.definitionMembers.append(definitionMember) 
     497                elif subFrag.tag == OM('Phenomenon'): 
     498                    definitionMember=Phenomenon() 
    490499                    definitionMember.fromXML(subFrag) 
    491500                    self.definitionMembers.append(definitionMember) 
     
    510519                    frag=Element(GML('EngineeringCRS')) 
    511520                    EngineeringCRS.toXML(definitionMember,frag) 
     521                    superFrag.append(frag) 
     522                    csmlFrag.append(superFrag) 
     523                if isinstance(definitionMember,Phenomenon): 
     524                    superFrag=Element(GML('definitionMember')) 
     525                    frag=Element(OM('Phenomenon')) 
     526                    Phenomenon.toXML(definitionMember,frag) 
    512527                    superFrag.append(frag) 
    513528                    csmlFrag.append(superFrag) 
     
    17481763    #       PointFeature(AbstractStaticCoverageFeatureType): 
    17491764    #      +PointDomain 
    1750     def __init__(self, PointDomain=None,*args,**kwargs): 
     1765    def __init__(self, pointDomain=None,*args,**kwargs): 
    17511766        AbstractStaticCoverageFeature.__init__(self,*args,**kwargs) 
    1752         if PointDomain: 
    1753             self.PointDomain=PointDomain 
     1767        if pointDomain: 
     1768            self.pointDomain=pointDomain 
    17541769    def fromXML(self,csmlFrag): 
    17551770        AbstractStaticCoverageFeature.fromXML(self,csmlFrag) 
    17561771        for frag in csmlFrag.getchildren(): 
    17571772            if frag.tag == CSML('PointDomain'): 
    1758                 self.PointDomain = PointDomain() 
    1759                 self.PointDomain.fromXML(frag) 
     1773                self.pointDomain = PointDomain() 
     1774                self.pointDomain.fromXML(frag) 
    17601775    def toXML(self,csmlFrag): 
    17611776        AbstractStaticCoverageFeature.toXML(self,csmlFrag) 
    1762         if hasattr(self,'PointDomain'): 
     1777        if hasattr(self,'pointDomain'): 
    17631778            frag = Element(CSML('PointDomain')) 
    1764             PointDomain.toXML(self.PointDomain,frag) 
     1779            PointDomain.toXML(self.pointDomain,frag) 
    17651780            if hasattr(self,'href'): 
    17661781                frag.attrib[XLINK('href')] = self.href 
     
    20042019        +FeatureMembers[0..*] 
    20052020    """ 
    2006     def __init__(self): 
    2007         AbstractFeatureCollection.__init__(self) 
     2021    def __init__(self,*args,**kwargs): 
     2022        AbstractFeatureCollection.__init__(self,*args,**kwargs) 
    20082023    def fromXML(self,csmlFrag): 
    20092024        AbstractFeatureCollection.fromXML(self,csmlFrag) 
Note: See TracChangeset for help on using the changeset viewer.