move validation outside librarian
[librarian.git] / librarian / document.py
index a3251a6..462b1ba 100755 (executable)
@@ -11,14 +11,16 @@ from .parser import SSTParser
 
 
 class Document(object):
-    # Do I use meta_context?
     def __init__(self, edoc, meta_context=None):
         self.edoc = edoc
-
         root_elem = edoc.getroot()
+        # Do I use meta_context?
         if meta_context is not None:
             root_elem.meta_context = meta_context
+        self.validate()
 
+    def validate(self):
+        root_elem = self.edoc.getroot()
         if not isinstance(root_elem, Section):
             if root_elem.tag != SSTNS('section'):
                 if root_elem.tag == 'section':
@@ -35,7 +37,6 @@ class Document(object):
                         root_elem.tag, SSTNS('section')))
             else:
                 raise ValueError("Invalid class of root element. Use librarian.parser.SSTParser.")
-        # print etree.tostring(self.edoc.getroot())
 
     @classmethod
     def from_string(cls, xml, *args, **kwargs):