899b5ae5be
Consider the current XML representation version 0.0.
36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
# CORE
|
|
# Copyright (c) 2014 The Boeing Company.
|
|
# See the LICENSE file included in this distribution.
|
|
|
|
from xml.dom.minidom import parse
|
|
from xmlutils import getoneelement
|
|
from xmlparser0 import CoreDocumentParser0
|
|
|
|
class CoreVersionParser(object):
|
|
'''\
|
|
Helper class to check the version of Network Plan document. This
|
|
simply looks for a "Scenario" element; when present, this
|
|
indicates a 0.0 version document. The dom member is set in order
|
|
to prevent parsing a file twice (it can be passed to the
|
|
appropriate CoreDocumentParser class.)
|
|
'''
|
|
def __init__(self, filename, options={}):
|
|
if 'dom' in options:
|
|
self.dom = options['dom']
|
|
else:
|
|
self.dom = parse(filename)
|
|
self.scenario = getoneelement(self.dom, 'Scenario')
|
|
if self.scenario is not None:
|
|
self.version = 0.0
|
|
else:
|
|
self.version = 'unknown'
|
|
|
|
def core_document_parser(session, filename, options):
|
|
vp = CoreVersionParser(filename, options)
|
|
if 'dom' not in options:
|
|
options['dom'] = vp.dom
|
|
if vp.version == 0.0:
|
|
doc = CoreDocumentParser0(session, filename, options)
|
|
else:
|
|
raise ValueError, 'unsupported document version: %s' % vp.version
|
|
return doc
|