|
11 | 11 |
|
12 | 12 | from pywps.validator.mode import MODE |
13 | 13 | from pywps.inout.formats import FORMATS |
| 14 | +from lxml.etree import XMLSchema |
| 15 | +from pywps import xml_util as etree |
14 | 16 | from urllib.request import urlopen |
15 | 17 | import mimetypes |
16 | 18 | import os |
@@ -61,13 +63,10 @@ def validategml(data_input, mode): |
61 | 63 | passed = False |
62 | 64 |
|
63 | 65 | if mode >= MODE.VERYSTRICT: |
64 | | - |
65 | | - from lxml import etree |
66 | | - |
67 | 66 | try: |
68 | 67 | schema_url = data_input.data_format.schema |
69 | 68 | gmlschema_doc = etree.parse(urlopen(schema_url)) |
70 | | - gmlschema = etree.XMLSchema(gmlschema_doc) |
| 69 | + gmlschema = XMLSchema(gmlschema_doc) |
71 | 70 | passed = gmlschema.validate(etree.parse(data_input.stream)) |
72 | 71 | except Exception as e: |
73 | 72 | LOGGER.warning(e) |
@@ -118,13 +117,10 @@ def validategpx(data_input, mode): |
118 | 117 | passed = False |
119 | 118 |
|
120 | 119 | if mode >= MODE.VERYSTRICT: |
121 | | - |
122 | | - from lxml import etree |
123 | | - |
124 | 120 | try: |
125 | 121 | schema_url = data_input.data_format.schema |
126 | 122 | gpxschema_doc = etree.parse(urlopen(schema_url)) |
127 | | - gpxschema = etree.XMLSchema(gpxschema_doc) |
| 123 | + gpxschema = XMLSchema(gpxschema_doc) |
128 | 124 | passed = gpxschema.validate(etree.parse(data_input.stream)) |
129 | 125 | except Exception as e: |
130 | 126 | LOGGER.warning(e) |
@@ -164,15 +160,13 @@ def validatexml(data_input, mode): |
164 | 160 | passed = data_input.data_format.mime_type in {mtype, FORMATS.GML.mime_type} |
165 | 161 |
|
166 | 162 | if mode >= MODE.STRICT: |
167 | | - from lxml import etree |
168 | | - |
169 | 163 | # TODO: Raise the actual validation exception to make it easier to spot the error. |
170 | 164 | # xml = etree.parse(data_input.file) |
171 | 165 | # schema.assertValid(xml) |
172 | 166 | try: |
173 | 167 | fn = os.path.join(_get_schemas_home(), data_input.data_format.schema) |
174 | 168 | schema_doc = etree.parse(fn) |
175 | | - schema = etree.XMLSchema(schema_doc) |
| 169 | + schema = XMLSchema(schema_doc) |
176 | 170 | passed = schema.validate(etree.parse(data_input.file)) |
177 | 171 | except Exception as e: |
178 | 172 | LOGGER.warning(e) |
|
0 commit comments