Esempio n. 1
0
 def handle_parse(self, parse, output):
     regexen = list(domtools.get_elements_by_tag_name_ns(parse, DTLL_NS, u'regex'))
     if regexen:
         regex = python_regex(domtools.string_value(regexen[0]))
         skel_params = {'regex': regex}
         output.write(DT_REGEX_SKEL%skel_params)
     else:
         output.write(DT_NO_REGEX_SKEL)
     return
Esempio n. 2
0
 def handle_parse(self, parse, output):
     regexen = list(
         domtools.get_elements_by_tag_name_ns(parse, DTLL_NS, u'regex'))
     if regexen:
         regex = python_regex(domtools.string_value(regexen[0]))
         skel_params = {'regex': regex}
         output.write(DT_REGEX_SKEL % skel_params)
     else:
         output.write(DT_NO_REGEX_SKEL)
     return
Esempio n. 3
0
 def handle_datatype(self, datatype):
     qname = datatype.getAttributeNS(NULL_PREFIX, u'name')
     prefix = qname[:qname.find(':') + 1][:-1] or NULL_PREFIX
     local = qname[qname.find(':')+1:]
     namespace = None
     if prefix:
         #Specified data type namespace by using a qname
         namespace = self.prefixes.get(prefix)
     if not namespace:
         #Specified data type namespace by in-scope namespaces
         namespace = GetAllNs(datatype)[prefix]
     output = self.outputs.setdefault(namespace, cStringIO.StringIO())
     output.write(TOP_SKEL)
     skel_params = {'ns': namespace}
     output.write(MAIN_SKEL%skel_params)
     skel_params = {'name': local}
     output.write(DT_CLASS_SKEL%skel_params)
     
     for parse in domtools.get_elements_by_tag_name_ns(datatype, DTLL_NS, u'parse'):
         self.handle_parse(parse, output)
     return
Esempio n. 4
0
    def handle_datatype(self, datatype):
        qname = datatype.getAttributeNS(NULL_PREFIX, u'name')
        prefix = qname[:qname.find(':') + 1][:-1] or NULL_PREFIX
        local = qname[qname.find(':') + 1:]
        namespace = None
        if prefix:
            #Specified data type namespace by using a qname
            namespace = self.prefixes.get(prefix)
        if not namespace:
            #Specified data type namespace by in-scope namespaces
            namespace = GetAllNs(datatype)[prefix]
        output = self.outputs.setdefault(namespace, cStringIO.StringIO())
        output.write(TOP_SKEL)
        skel_params = {'ns': namespace}
        output.write(MAIN_SKEL % skel_params)
        skel_params = {'name': local}
        output.write(DT_CLASS_SKEL % skel_params)

        for parse in domtools.get_elements_by_tag_name_ns(
                datatype, DTLL_NS, u'parse'):
            self.handle_parse(parse, output)
        return
Esempio n. 5
0
 def execute(self, dtlldoc):
     for datatype in domtools.get_elements_by_tag_name_ns(dtlldoc, DTLL_NS, u'datatype'):
         self.handle_datatype(datatype)
     return
Esempio n. 6
0
 def execute(self, dtlldoc):
     for datatype in domtools.get_elements_by_tag_name_ns(
             dtlldoc, DTLL_NS, u'datatype'):
         self.handle_datatype(datatype)
     return