equal
deleted
inserted
replaced
20 import re |
20 import re |
21 import sys |
21 import sys |
22 |
22 |
23 from lxml import etree |
23 from lxml import etree |
24 |
24 |
25 from logilab.common.deprecation import class_deprecated |
25 from logilab.common.deprecation import class_deprecated, class_renamed |
26 |
26 |
27 from cubicweb.view import STRICT_DOCTYPE, TRANSITIONAL_DOCTYPE |
27 from cubicweb.view import STRICT_DOCTYPE, TRANSITIONAL_DOCTYPE |
28 |
28 |
29 STRICT_DOCTYPE = str(STRICT_DOCTYPE) |
29 STRICT_DOCTYPE = str(STRICT_DOCTYPE) |
30 TRANSITIONAL_DOCTYPE = str(TRANSITIONAL_DOCTYPE) |
30 TRANSITIONAL_DOCTYPE = str(TRANSITIONAL_DOCTYPE) |
77 data = etree.tostring(tree) |
77 data = etree.tostring(tree) |
78 return '<?xml version="1.0" encoding="UTF-8"?>%s\n%s' % ( |
78 return '<?xml version="1.0" encoding="UTF-8"?>%s\n%s' % ( |
79 STRICT_DOCTYPE, data) |
79 STRICT_DOCTYPE, data) |
80 |
80 |
81 |
81 |
82 class SaxOnlyValidator(Validator): |
82 class XMLValidator(Validator): |
|
83 """ A fully compliant XML parser """ |
83 |
84 |
84 def __init__(self): |
85 def __init__(self): |
85 Validator.__init__(self) |
86 Validator.__init__(self) |
86 self.parser = etree.XMLParser() |
87 self.parser = etree.XMLParser() |
|
88 |
|
89 SaxOnlyValidator = class_renamed('SaxOnlyValidator', |
|
90 XMLValidator, |
|
91 '[3.17] you should use the ' |
|
92 'XMLValidator class instead') |
87 |
93 |
88 |
94 |
89 class XMLDemotingValidator(SaxOnlyValidator): |
95 class XMLDemotingValidator(SaxOnlyValidator): |
90 """ some views produce html instead of xhtml, using demote_to_html |
96 """ some views produce html instead of xhtml, using demote_to_html |
91 |
97 |