Skip to content

XML Validation

XML Validation #1

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)