Exemple #1
0
def validateManifest():
    parser = xmlval.XMLValidator()
    parser.set_error_handler(utils.ErrorPrinter(parser))
    dtd = xmldtd.load_dtd('/mvista/arch/manifest.dtd')
    parser.val.dtd = parser.dtd = parser.ent = dtd
    parser.parse_resource('manifest.xml')
    return
Exemple #2
0
 def parseSource(self,sourcefile):
   try:
     parser = xmlval.XMLValidator()
     packParser = PackageXmlParser(sourcefile,self.msgLevel,self.pkgName)
     self.parser.set_application(packParser)
     self.parser.parse_resource(sourcefile)
     return packParser.data['lcg'][0]
   except :
     pass
Exemple #3
0
def validate_xml(xml_filename):

    xv = xmlval.XMLValidator()
    bh = BadXspifPluginErrorHandler(xv.app.locator)

    xv.set_error_handler(bh)
    xv.parse_resource(xml_filename)

    return
def validate(file):
    print "validating..."
    d = xmldtd.load_dtd(sys.path[0] + "/xmlfapi.dtd")
    p = xmlval.XMLValidator()
    p.set_application(XmlFapiValidator())
    try:
        p.parse_resource(file)
    except:
        sys.stderr.write("Cannot validate XML source\n")
        pass
    pass
Exemple #5
0
    def parse(self, source):
        try:
            self.__parsing = 1

            # interpret source
            
            source = prepare_input_source(source)

            # create parser
                
            if self.__validate:
                parser = xmlval.XMLValidator()
            else:
                parser = xmlproc.XMLProcessor()

            # set handlers
                
            if self._cont_handler != None or self._lex_handler != None:
                if self._cont_handler == None:
                    self._cont_handler = saxlib.ContentHandler()
                if self._lex_handler == None:
                    self._lex_handler = saxlib.LexicalHandler()

                if self.__namespaces:
                    filter = NamespaceFilter(parser, self._cont_handler,
                                             self._lex_handler, self)
                    parser.set_application(filter)
                else:
                    parser.set_application(self)

            if self._err_handler != None:
                parser.set_error_handler(self)

            if self._decl_handler != None or self._dtd_handler != None:
                parser.set_dtd_listener(self)
                
            # FIXME: set other handlers

            bufsize=16384
            self._parser = parser # make it available for callbacks
            #parser.parse_resource(source.getSystemId()) # FIXME: rest!
            parser.set_sysid(source.getSystemId())
            parser.read_from(source.getByteStream(), bufsize)
            source.getByteStream().close()
            parser.flush()
            parser.parseEnd()
            
        finally:
            self._parser = None
            self.__parsing = 0
Exemple #6
0
 def _validate(self, html, offset=0, izXhtmlValidationListener=None):
     #dtdDoc = xmldtd.load_dtd(self.getDtdFilename()) #@UnusedVariable
     val = xmlval.XMLValidator()
     handler = ZDtdParserHandlerApp(val, offset, izXhtmlValidationListener)
     val.set_application(handler)
     val.set_data_after_wf_error(0)
     val.set_error_handler(handler)
     if izXhtmlValidationListener:
         izXhtmlValidationListener.onXhtmlValidationStart()
     try:
         val.parser.parse_string(html)
     except Exception, e:
         if izXhtmlValidationListener:
             izXhtmlValidationListener.onXhtmlValidationException(e)
Exemple #7
0
def validateXMLFile(fileName):
    # logger.critical('Hacked version of validateXMLFile !!!! always returns True!!!!')
    # logger.critical('UCL is down - no DTD!!!')
    # return True

    try:
        validator = xmlval.XMLValidator()
        validator.parse_resource(fileName)
        logger.debug(fileName + ' is validated against DTD')
    except SystemExit, e:
        logger.error(fileName + ' is NOT validated against DTD ')
        msg = 'caught SytemExit: maybe xml file does not refer to a '
        msg += 'DTD or is invalid against DTD'
        logger.error(msg)
        raise Exception, str(
            os.path.basename(fileName)) + " not valid against DTD"
Exemple #8
0
    def prepareParser(self, source):
        self.__parsing = 1

        # create parser

        if self.__validate:
            parser = xmlval.XMLValidator()
        else:
            parser = xmlproc.XMLProcessor()

        # set handlers

        if self._cont_handler != None or self._lex_handler != None:
            if self._cont_handler == None:
                self._cont_handler = saxlib.ContentHandler()
            if self._lex_handler == None:
                self._lex_handler = saxlib.LexicalHandler()

            if self.__namespaces:
                filter = NamespaceFilter(parser, self._cont_handler,
                                         self._lex_handler, self)
                parser.set_application(filter)
            else:
                parser.set_application(self)

        if self._err_handler != None:
            parser.set_error_handler(self)

        if self._decl_handler != None or self._dtd_handler != None:
            parser.set_dtd_listener(self)

        parser.set_pubid_resolver(self)
        
        # FIXME: set other handlers

        if self.__ext_pes:
            parser.set_read_external_subset(1)

        self._parser = parser # make it available for callbacks
        if source:
            parser.set_sysid(source.getSystemId())
Exemple #9
0
    def error(self, message):
        print "B³±d: " + message

    def fatal(self, message):
        print "B³±d krytyczny: " + message


# Otwórz pliki HTML i XSTL jako strumienie.
html = open('mojblog.html')
xsl = open('HTMLnaRSS.xsl')

# Przetwórz strumienie i utwórz z nich Ÿród³a wejœciowe.
parsedxml = InputSource.DefaultFactory.fromStream(html, "mojblog.html")
parsedxsl = InputSource.DefaultFactory.fromStream(xsl, "HTMLnaRSS.xsl")

# Utwórz nowy procesor, do³¹cz do niego arkusz stylu a nastêpnie przekszta³æ XML.
processor = Processor()
processor.appendStylesheet(parsedxsl)
HTML = processor.run(parsedxml)

# Zapisz wyjœciowy dokument RSS w pliku.
output = open("kanalRSS.xml", 'w')
output.write(HTML)
output.close

# Dokonaj walidacji kana³u RSS.
parser = xmlval.XMLValidator()
parser.set_error_handler(docErrorHandler(parser))
parser.parse_resource("kanalRSS.xml")
Exemple #10
0
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration

import sys

if __name__ == '__main__':
    import os, getopt

    from xml.parsers.xmlproc import xmlproc, xmlval

    opts, args = getopt.getopt(sys.argv[1:], '')
    
    if len(args) != 1:
        print 'must supply the full path of the xml file'
        sys.exit(0)

    fn = args[0]
    if not os.path.exists(fn):
        print '%s: inexistant!' % fn
        sys.exit(0)

    try:
        validator = xmlval.XMLValidator()
        validator.parse_resource(fn)
        print '%s: valid OK.' % fn
    except Exception, e:
        print '%s: NOT valid: FAIL.' % fn
Exemple #11
0
 def __init__(self,msgLevel='ALL',pkgName=''):
   self.msgLevel = msgLevel
   self.pkgName = pkgName
   self.parser = xmlval.XMLValidator()
Exemple #12
0
    def __init__(self, parent, ID, title):
        wxFrame.__init__(self, parent, ID, title, wxDefaultPosition,
                         wxSize(550, 450))

        self.SetAutoLayout(true)
        self.CreateStatusBar(1)

        # --- Menu

        menu = wxMenu()
        menu.Append(ID_DOCUMENT, "&Find document",
                    "Find a document to validate")
        menu.Append(ID_CATALOG, "Find &catalog",
                    "Find a catalog to resolve public identifiers with")
        menu.Append(ID_EXIT, "E&xit", "Terminate the program")

        menuBar = wxMenuBar()
        menuBar.Append(menu, "&File")

        self.SetMenuBar(menuBar)

        EVT_MENU(self, ID_DOCUMENT, self.FindDocument)
        EVT_MENU(self, ID_CATALOG, self.FindCatalog)
        EVT_MENU(self, ID_EXIT, self.TimeToQuit)

        # --- Field: XML document location

        loc = wxTextCtrl(self, -1, "")
        lc = wxLayoutConstraints()
        lc.top.SameAs(self, wxTop, 5)
        lc.height.AsIs()
        lc.left.SameAs(self, wxLeft, 5)
        lc.right.SameAs(self, wxRight, 5)
        loc.SetConstraints(lc)

        # --- Field: Catalog file location

        cat_loc = ""
        if os.environ.has_key("XMLXCATALOG"):
            cat_loc = os.environ["XMLXCATALOG"]
        elif os.environ.has_key("XMLSOCATALOG"):
            cat_loc = os.environ["XMLSOCATALOG"]

        cat = wxTextCtrl(self, -1, cat_loc)
        lc = wxLayoutConstraints()
        lc.top.SameAs(loc, wxBottom, 5)
        lc.height.AsIs()
        lc.left.SameAs(self, wxLeft, 5)
        lc.right.SameAs(self, wxRight, 5)
        cat.SetConstraints(lc)

        # --- A containing panel for a row of controls

        panel = wxPanel(self, -1)
        lc = wxLayoutConstraints()
        lc.top.SameAs(cat, wxBottom)
        lc.height.AsIs()
        lc.left.SameAs(self, wxLeft)
        lc.right.SameAs(self, wxRight)
        panel.SetConstraints(lc)

        # --- Buttons

        parse_id = NewId()
        parse_btn = wxButton(panel, parse_id, "Parse")
        lc = wxLayoutConstraints()
        lc.top.SameAs(panel, wxTop, 5)
        lc.height.AsIs()
        lc.left.SameAs(panel, wxLeft, 5)
        lc.width.AsIs()
        parse_btn.SetConstraints(lc)
        EVT_BUTTON(self, parse_id, self.Parse)

        # --- Field: Language

        lang = wxComboBox(panel, -1)
        # FIXME: want to set style
        lc = wxLayoutConstraints()
        lc.top.SameAs(panel, wxTop, 5)
        lc.height.AsIs()
        lc.left.SameAs(parse_btn, wxRight, 5)
        lc.width.AsIs()
        lang.SetConstraints(lc)

        for lang_name in errors.get_language_list():
            lang.Append(lang_name)

        lang.SetSelection(0)

        # --- Field: Warnings

        warn = wxCheckBox(panel, -1, "Warnings")
        lc = wxLayoutConstraints()
        lc.top.SameAs(panel, wxTop, 5)
        lc.height.AsIs()
        lc.left.RightOf(lang, 5)
        lc.width.AsIs()
        warn.SetConstraints(lc)

        # --- Field: Output?

        output = wxCheckBox(panel, -1, "Show output")
        lc = wxLayoutConstraints()
        lc.top.SameAs(panel, wxTop, 5)
        lc.height.AsIs()
        lc.left.RightOf(warn, 5)
        lc.width.AsIs()
        output.SetConstraints(lc)

        # --- Error list

        list_id = NewId()
        list = wxListCtrl(self, list_id, wxDefaultPosition, wxDefaultSize,
                          wxLC_REPORT | wxSUNKEN_BORDER)
        list.InsertColumn(0, "System identifier")
        list.InsertColumn(1, "Line")
        list.InsertColumn(2, "Column")
        list.InsertColumn(3, "Message")
        lc = wxLayoutConstraints()
        lc.top.SameAs(panel, wxBottom, 5)
        lc.bottom.SameAs(self, wxBottom, 5)
        lc.left.SameAs(self, wxLeft, 5)
        lc.right.SameAs(self, wxRight, 5)
        list.SetConstraints(lc)

        # --- Global data

        self.loc = loc
        self.cat = cat
        self.list = list
        self.parser = xmlval.XMLValidator()
        self.errors = ErrorRecorder(self.parser)
        self.lang = lang
        self.warn = warn
        self.output = output
Exemple #13
0
 def _create_parser(self):
     return xmlval.XMLValidator()
def validate_dtd(file):
    if not ValidationError:
        return  # return if we (are assumed to) have not loaded the xml modules
    parser = xmlval.XMLValidator()
    parser.set_error_handler(ErrorHandler(parser))
    parser.parse_resource(file)
Exemple #15
0
 def parsefile(self, fp):
     try:
         t = xmlutils.loaddata(fp)
     except:
         self.invalid()
         return False
     rt = t.documentElement
     if rt.nodeName != "soulforge_character":
         self.invalid()
         return False
     uni = rt.getAttribute("universe")
     if uni:
         tmp = sfuniverses.getuniverse(uni)
         if tmp:
             self.universe = tmp()
         dtd = self.universe.dtd()
         if dtd:
             if headerdata.options.debug:
                 print dtd
             docstring = xmlutils.load(fp)
             dtddata = xmldtd.load_dtd_string(dtd)
             if headerdata.options.debug:
                 from xml.parsers.xmlproc.utils import ErrorPrinter
                 docpointer = cStringIO.StringIO(docstring)
                 parser = xmlval.XMLValidator()
                 parser.dtd = dtddata
                 parser.set_error_handler(
                     ErrorPrinter(parser, out=sys.stderr))
                 parser.read_from(docpointer)
                 parser.close()
                 docpointer.close()
                 del docpointer
                 del parser
             docpointer = cStringIO.StringIO(docstring)
             parser = xmlval.XMLValidator()
             parser.dtd = dtddata
             parser.set_error_handler(ErrorRaiser(parser))
             try:
                 parser.read_from(docpointer)
                 parser.close()
                 docpointer.close()
                 del parser
             except:
                 err = wx.MessageDialog(
                     self, _("Error: Character data is malformed"),
                     _("Error!"), wx.OK)
                 err.Centre(wx.BOTH)
                 err.ShowModal()
                 err.Destroy()
                 return False
             if headerdata.options.debug:
                 print "Character data is legitimate"
         else:
             if headerdata.options.debug:
                 print "Character has no DOCTYPE structure definition, proceed with caution..."
     else:
         err = wx.MessageDialog(
             self, _("Error: Character has invalid or no universe"),
             _("Error!"), wx.OK)
         err.Centre(wx.BOTH)
         err.ShowModal()
         err.Destroy()
         return False
     return t