<commit_before>## What? 

I needed a fast, memory efficient, simple-to-use, and simple-to-deploy command
line tool for validating very large XML files with external DTDs or XSD schemas.
This is the result. A build recipe (and downloads) that creates a single file
executable having no other dependencies than a C runtime library. No need to
fiddle with extra libraries, or .NET, or Java runtimes.

XValid consists of three pieces: a build recipe source repository, a `libxml2`
development dependencies download, and a download containing the single file
`xval.exe` executable.

## Usage Overview - build recipe

1. Install the [DevKit](http://rubyinstaller.org/add-ons/devkit/) and add it to
   your `PATH` environment variable by running it's `devkitvars.bat` file.
2. Run `ruby configure` to prepare for building. You may have to customize the
   configuration by providing options.
3. Run `rake`.

### configure usage

    C:\projects\xvalid-git>ruby configure --help
    usage: ruby configure [options]
    
    libxml2 options:
      --with-xml2-include, -I <s>:   libxml2 header directory
          --with-xml2-lib, -L <s>:   libxml2 library directory
    
    compiler toolkit options:
                         --cc <s>:   C compiler (default: gcc)
               --defines, -d <s+>:   preprocessor definitions
               --optflags, -o <s>:   optimization settings (default: -O3)
             --debugflags, -g <s>:   debug settings (default: -ggdb)
    
    general options:
                       --help, -h:   Show this message

## Usage Overview - xval executable

## License

3-clause BSD. See project LICENSE file.

## TODO
<commit_msg>Add xval.exe usage info to README<commit_after>## What? 

I needed a fast, memory efficient, simple-to-use, and simple-to-deploy command
line tool for validating very large XML files with external DTDs or XSD schemas.
This is the result. A build recipe (and downloads) that creates a single file
executable having no other dependencies than a C runtime library. No need to
fiddle with extra libraries, or .NET, or Java runtimes.

XValid consists of three pieces: a build recipe source repository, a `libxml2`
development dependencies download, and a download containing the single file
`xval.exe` executable.

## Usage Overview - build recipe

1. Install the [DevKit](http://rubyinstaller.org/add-ons/devkit/) and add it to
   your `PATH` environment variable by running it's `devkitvars.bat` file.
2. Run `ruby configure` to prepare for building. You may have to customize the
   configuration by providing options.
3. Run `rake`.

### configure usage

    C:\projects\xvalid-git>ruby configure --help
    usage: ruby configure [options]
    
    libxml2 options:
      --with-xml2-include, -I <s>:   libxml2 header directory
          --with-xml2-lib, -L <s>:   libxml2 library directory
    
    compiler toolkit options:
                         --cc <s>:   C compiler (default: gcc)
               --defines, -d <s+>:   preprocessor definitions
               --optflags, -o <s>:   optimization settings (default: -O3)
             --debugflags, -g <s>:   debug settings (default: -ggdb)
    
    general options:
                       --help, -h:   Show this message

## Usage Overview - xval executable

    C:\projects\xvalid-git>xval.exe
    XVal: Validate XML documents
    Usage: xval [--dtd DTD_FILE | --xsd XSD_FILE] XML_FILE ...
    
      --dtd DTD_FILE  validate against external DTD file
      --xsd XSD_FILE  validate against external XSD schema file

## License

3-clause BSD. See project LICENSE file.

## TODO

{'fraction_non_alphanumeric': 0.0900976290097629, 'fraction_numerical': 0.006136680613668061, 'mean_word_length': 2.723779854620976, 'pattern_counts': {'":': 0, '<': 15, '<?xml version=': 0, '>': 18, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 12}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 6, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '39982', 'n_tokens_mistral': 1041, 'n_tokens_neox': 991, 'n_words': 428}