Home | History | Annotate | Download | only in xmlValidator
      1 # xmlValidator tool
      2 
      3 This tool can be used to check if the `.xml` files you have written are
      4 following the `.xsd` schemas provided by the PFW.  By doing so, you are *ensured*
      5 that your configuration is *fully compatible* with the `parameter-framework`.
      6 
      7 It scans all directories and subdirectories for `.xml` files and checks them
      8 with `.xsd` from a *schemas* directory you specified for the script.
      9 
     10 ## Usage
     11 
     12 To run xmlValidator, just start it from the commandline with:
     13 
     14     python xmlValidator.py <xmlRootDirectory> <xsdDirectory>
     15 
     16 where:
     17 
     18 * `<xmlRootDirectory>` is a path to a directory containing:
     19     - `.xml` files
     20     - subdirectories containing `.xml` files
     21 * `<xsdDirectory>` is a path to a directory containing:
     22     - `.xsd` files (also called *schemas*)
     23 
     24 ## Example of usage
     25 
     26 ### File structure
     27 
     28 In the example, we have the following files:
     29 
     30     |-- ParameterFrameworkConfiguration.xml
     31     |-- schemas
     32     |   |-- ComponentLibrary.xsd
     33     |   |-- ComponentTypeSet.xsd
     34     |   |-- ConfigurableDomains.xsd
     35     |   |-- FileIncluder.xsd
     36     |   |-- ParameterFrameworkConfiguration.xsd
     37     |   |-- ParameterSettings.xsd
     38     |   |-- Parameter.xsd
     39     |   |-- Subsystem.xsd
     40     |   `-- SystemClass.xsd
     41     |-- Settings
     42     |   `-- FS
     43     |       `-- Genres.xml
     44     `--- Structure
     45          `-- FS
     46             |-- MusicLibraries.xml
     47             `-- my_music.xml
     48 
     49 ### Command
     50 We are in the directory which contains the structure detailed previously.
     51 To check the validity, we just run:
     52 
     53     ../../tools/xmlValidator/xmlValidator.py . schemas
     54 
     55 ### Results
     56 And we will get the following output on the commandline:
     57 
     58     [*] Validate xml files in /home/lab/MusicLibrary/ with /home/lab/MusicLibrary/schemas
     59     Attempt to validate ParameterFrameworkConfiguration.xml with ParameterFrameworkConfiguration.xsd
     60     ParameterFrameworkConfiguration.xml is valid
     61     Attempt to validate my_music.xml with Subsystem.xsd
     62     my_music.xml is valid
     63     Attempt to validate MusicLibraries.xml with SystemClass.xsd
     64     MusicLibraries.xml is valid
     65     Attempt to validate Genres.xml with ConfigurableDomains.xsd
     66     Genres.xml is valid
     67 
     68 
     69 ## Install requirements
     70 
     71 In order to use this tool, you must have the following packages (these
     72 are the names on a debian-based distribution):
     73 
     74 * `python` (2.7 or later)
     75 * `python-lxml`
     76 * `libpython2.7` or later
     77