52 |
data = string.replace(data, "'", "'") |
data = string.replace(data, "'", "'") |
53 |
return data |
return data |
54 |
|
|
55 |
class XMLSaver: |
class XMLWriter: |
56 |
"""Abstract XMLSaver. |
"""Abstract XMLWriter. |
57 |
|
|
58 |
Should be overridden to provide specific object saving functionality. |
Should be overridden to provide specific object saving functionality. |
59 |
""" |
""" |
141 |
for name, value in attrs.items(): |
for name, value in attrs.items(): |
142 |
self.file.write(' %s="%s"' % (escape(name), escape(value))) |
self.file.write(' %s="%s"' % (escape(name), escape(value))) |
143 |
|
|
144 |
class SessionSaver(XMLSaver): |
class SessionSaver(XMLWriter): |
145 |
|
|
146 |
"""Class to serialize a session into an XML file. |
"""Class to serialize a session into an XML file. |
147 |
|
|
155 |
|
|
156 |
|
|
157 |
def __init__(self, session): |
def __init__(self, session): |
158 |
XMLSaver.__init__(self) |
XMLWriter.__init__(self) |
159 |
self.session = session |
self.session = session |
160 |
|
|
161 |
def write(self, file_or_filename): |
def write(self, file_or_filename): |
162 |
XMLSaver.write(self, file_or_filename) |
XMLWriter.write(self, file_or_filename) |
163 |
|
|
164 |
self.write_header("session", "thuban.dtd") |
self.write_header("session", "thuban.dtd") |
165 |
self.write_session(self.session) |
self.write_session(self.session) |
210 |
"""Write the projection. |
"""Write the projection. |
211 |
""" |
""" |
212 |
if projection and len(projection.params) > 0: |
if projection and len(projection.params) > 0: |
213 |
self.open_element("projection") |
self.open_element("projection", |
214 |
|
{"name": escape(projection.GetName())}) |
215 |
for param in projection.params: |
for param in projection.params: |
216 |
self.write_element('parameter value="%s"' % escape(param)) |
self.write_element('parameter value="%s"' % escape(param)) |
217 |
self.close_element("projection") |
self.close_element("projection") |
235 |
attrs["fill"] = lc.GetDefaultFill().hex() |
attrs["fill"] = lc.GetDefaultFill().hex() |
236 |
|
|
237 |
self.open_element("layer", attrs) |
self.open_element("layer", attrs) |
238 |
|
|
239 |
|
proj = layer.GetProjection() |
240 |
|
if proj is not None: |
241 |
|
self.write_projection(proj) |
242 |
|
|
243 |
self.write_classification(layer) |
self.write_classification(layer) |
244 |
|
|
245 |
self.close_element("layer") |
self.close_element("layer") |
246 |
|
|
247 |
def write_classification(self, layer, attrs = None): |
def write_classification(self, layer, attrs = None): |