XML Validation #1
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: XML Validation | |
on: [push, pull_request, workflow_dispatch] | |
jobs: | |
Validate_collection_RDF: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: java -jar Validation/jing.jar Validation/rdfxml.rng RDF/collection.rdf | |
Validate_DDB_EpiDoc_XML: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt-get install -y moreutils parallel | |
- run: find DDB_EpiDoc_XML -name "*.xml" | parallel --gnu --will-cite -X -j8 -u "java -jar Validation/jing.jar Validation/EpiDoc/8.16/tei-epidoc.rng {}" | |
Validate_HGV_meta_EpiDoc: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt-get install -y moreutils parallel | |
- run: find HGV_meta_EpiDoc -name "*.xml" | parallel --gnu --will-cite -X -j8 -u "java -jar Validation/jing.jar Validation/EpiDoc/8.13/tei-epidoc.rng {}" | |
Validate_DCLP: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt-get install -y moreutils parallel | |
- run: find DCLP -name "*.xml" | parallel --gnu --will-cite -X -j8 -u "java -jar Validation/jing.jar Validation/EpiDoc/8.23/tei-epidoc.rng {}" | |
Validate_HGV_trans_EpiDoc: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt-get install -y moreutils parallel | |
- run: find HGV_trans_EpiDoc -name "*.xml" | parallel --gnu --will-cite -X -j8 -u "java -jar Validation/jing.jar Validation/EpiDoc/8.13/tei-epidoc.rng {}" | |
Validate_APIS: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- run: sudo apt-get install -y moreutils parallel | |
- run: find APIS -name "*.xml" | parallel --gnu --will-cite -X -j8 -u "java -jar Validation/jing.jar Validation/EpiDoc/8.13/tei-epidoc.rng {}" | |
parse-xml: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
- run: pip install lxml | |
- uses: jannekem/run-python-script-action@v1 | |
with: | |
script: | | |
from pathlib import Path | |
from lxml.etree import parse, XMLSyntaxError | |
encountered_errors = [] | |
root_path = Path.cwd() | |
for file in root_path.rglob("*.xml"): | |
try: | |
parse(str(file)) | |
except XMLSyntaxError as e: | |
encountered_errors.append(f"{file.relative_to(root_path)}: {e.msg}") | |
if encountered_errors: | |
print("\nInvalid XML encodings were found:") | |
print("---------------------------------") | |
print("\n".join(encountered_errors) + "\n") | |
raise SystemExit(1) |