This action validates an XML files with a given XML schema using xmllint
.
Required The name of the source (.xml
) file.
Required The name of the schema (.xsd
) file.
Optional The type of schema to use (schema, relaxng, schematron). Default is schema.
This basic example validates specified XML file specified using: xml-file
using the schema file specified using: xml-schema-file
.
name: Lint
on: [push]
jobs:
xml-linters:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download schema
run: wget https://apps.nextcloud.com/schema/apps/info.xsd
- name: Validate info.xml using XML schema info.xsd
uses: ChristophWurst/xmllint-action@v1
with:
xml-file: ./appinfo/info.xml
xml-schema-file: ./info.xsd
To use an alternate schema format supported by xmllint
(i.e. relaxng or schematron), you should specify the format of your schema using the optional xml-schema-type
parameter.
This example does the same as the above example, in addition it configures the use of korelstar/xmllint-problem-matcher@v1, which matches any problems found by xmllint
and present these as annotations with both errors and warnings emitted from xmllint
, which are a nice alternative to digging through the log files.
name: Lint
on: [push]
jobs:
xml-linters:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download schema
run: wget https://apps.nextcloud.com/schema/apps/info.xsd
- name: Enable annotations for validation errors and warnings
uses: korelstar/xmllint-problem-matcher@v1
- name: Validate info.xml using XML schema info.xsd
uses: ChristophWurst/xmllint-action@v1
with:
xml-file: ./appinfo/info.xml
xml-schema-file: ./info.xsd
xmllint
comes from libxml- GitHub: korelstar/xmllint-problem-matcher