"Fossies" - the Fresh Open Source Software Archive

Member "svnchecker-0.3/checks/XMLValidator.py" (9 Jul 2008, 1268 Bytes) of package /linux/privat/old/svnchecker-0.3.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Python source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. For more information about "XMLValidator.py" see the Fossies "Dox" file reference documentation.

    1 # Copyright 2008 German Aerospace Center (DLR)
    2 #
    3 # Licensed under the Apache License, Version 2.0 (the "License");
    4 # you may not use this file except in compliance with the License.
    5 # You may obtain a copy of the License at
    6 #
    7 #     http://www.apache.org/licenses/LICENSE-2.0
    8 #
    9 # Unless required by applicable law or agreed to in writing, software
   10 # distributed under the License is distributed on an "AS IS" BASIS,
   11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   12 # See the License for the specific language governing permissions and
   13 # limitations under the License.
   14 
   15 """ Checks XML files for correctness. """
   16 
   17 from xml.dom import minidom
   18 from xml.parsers import expat
   19 
   20 def run(transaction, config):
   21 
   22     check = config.getArray("XMLValidator.CheckFiles", [".*\.xml"])
   23     ignore = config.getArray("XMLValidator.IgnoreFiles", [])
   24     files = transaction.getFiles(check, ignore)
   25 
   26     msg= ""
   27     for filename, attribute in files.iteritems():
   28         if attribute in ["A", "U"]:
   29             try:
   30                 minidom.parse(transaction.getFile(filename))
   31             except expat.ExpatError, e:
   32                 msg += "XML Validation error in file %r: %s" % (filename, e)
   33 
   34     if msg:
   35         return (msg, 1)
   36     else:
   37         return ("", 0)