# xmlvalid

> Online XML validator: checks XML against XSD, DTD and RelaxNG schemas and e-invoices against the official Schematron business rules (EN 16931, Peppol, XRechnung and national rules), in the browser, with every error at its line and column. Documents are validated on the user's machine and never uploaded.

Free in the browser for files up to 1 GB, with no account needed for files up to 50 MB. The Pro plan adds a REST API, a command-line client and GitHub Action for CI, URL monitors and webhooks; those validate on xmlvalid's servers. The engine is libxml2 (XSD 1.0, not XSD 1.1) and SaxonJS for Schematron.

The guides, documentation, schema, rule set, rule and error pages below also come as Markdown: add .md to the URL (https://xmlvalid.com/rules/BR-CO-15.md).

## In numbers

- Schemas in the catalog: 178
- Business rule sets: 54, with 7,709 rules in all
- E-invoicing country guides: 24
- XML error messages explained: 90

## Validator

- [XML validator](https://xmlvalid.com/validate): paste, upload or fetch a document and validate it against a schema or a catalog profile.
- [XSD validator](https://xmlvalid.com/xsd-validator): Validate XML against an XSD in your browser: files up to 1 GB, multi-file schemas with imports and includes, every error with its line. Nothing is uploaded.
- [DTD validator](https://xmlvalid.com/dtd-validator): Validate XML against a DTD in your browser: a .dtd file or the document's own DOCTYPE, every error at its line and column. Files up to 1 GB, nothing uploaded.
- [RelaxNG validator](https://xmlvalid.com/relaxng-validator): Validate XML against RelaxNG, XML (.rng) or compact (.rnc) syntax, in your browser: includes resolved, files up to 1 GB, errors with line, nothing uploaded.
- [Schematron validator for e-invoices](https://xmlvalid.com/schematron-validator): Check e-invoices against the official Schematron rules of EN 16931, Peppol BIS Billing 3.0 and XRechnung in your browser. Each finding names its rule and line.

## E-invoicing by country

- [French e-invoice validator](https://xmlvalid.com/e-invoicing/france): Check an invoice for the French e-invoicing reform in your browser: the schema, EN 16931 and FNFE-MPE's BR-FR rules. UBL, CII and Factur-X PDFs.
- [German e-invoice validator: XRechnung and ZUGFeRD](https://xmlvalid.com/e-invoicing/germany): Check XRechnung and ZUGFeRD / Factur-X invoices for the German mandate in your browser: schema, EN 16931 and the KoSIT rules, as KoSIT's validator rates them.
- [Belgian e-invoice validator: Peppol BIS](https://xmlvalid.com/e-invoicing/belgium): Check a Peppol BIS 3.0 invoice for the Belgian B2B mandate in your browser: the UBL schema, EN 16931 and the Peppol rules with the enterprise number check.
- [KSeF invoice validator: FA(3)](https://xmlvalid.com/e-invoicing/poland): Check a Polish e-Faktura against the KSeF FA(3) schema in your browser before you send it: structure, data types, NIP format and code lists, each on its line.
- [Croatian eRačun validator](https://xmlvalid.com/e-invoicing/croatia): Check a Croatian eRačun (UBL, HR CIUS 2025) in your browser: the UBL schema, EN 16931 and the Tax Administration's HR-BR rules, each finding on its line.
- [RO e-Factura validator](https://xmlvalid.com/e-invoicing/romania): Check a RO e-Factura invoice (UBL, CIUS-RO) in your browser before ANAF: the UBL schema and the Ministry of Finance's rules 1.0.9, each finding on its line.
- [FatturaPA validator](https://xmlvalid.com/e-invoicing/italy): Check a FatturaPA invoice (FPR12, FPA12 or FSM10) in your browser before the SdI: the schema and the SdI's own checks, with its error codes (00400, 00423…).
- [UAE e-invoice validator (PINT AE)](https://xmlvalid.com/e-invoicing/uae): Check a UAE e-invoice (Peppol PINT AE, UBL) in your browser before it goes to your service provider: the UBL schema and OpenPeppol's PINT and PINT AE rules.
- [InvoiceNow validator (PINT SG)](https://xmlvalid.com/e-invoicing/singapore): Check a Singapore e-invoice for InvoiceNow (Peppol PINT SG, UBL) in your browser: the UBL schema and OpenPeppol's PINT and PINT SG rules, each on its line.
- [JP PINT validator](https://xmlvalid.com/e-invoicing/japan): Check a Japanese Peppol e-invoice (JP PINT, UBL) in your browser: the UBL schema and OpenPeppol's PINT and JP PINT rules, with every finding on its line.
- [Australian e-invoice validator (PINT A-NZ)](https://xmlvalid.com/e-invoicing/australia): Check an Australian or New Zealand Peppol e-invoice (PINT A-NZ, UBL) in your browser: the UBL schema and OpenPeppol's PINT and A-NZ rules, each on its line.
- [Spanish e-invoice validator](https://xmlvalid.com/e-invoicing/spain): Check a VERI*FACTU record with the AEAT's checks, a Facturae invoice with FACe's rules, or a B2B e-invoice for the AEAT's public solution, in your browser.
- [Dutch e-invoice validator: SI-UBL 2.0 and NLCIUS](https://xmlvalid.com/e-invoicing/netherlands): Check a Dutch e-invoice in your browser: SI-UBL 2.0 or NLCIUS CII against the schema, EN 16931 and the BR-NL rules, or Peppol BIS with its NL rules.
- [Danish e-invoice validator: OIOUBL 2.1](https://xmlvalid.com/e-invoicing/denmark): Check a Danish OIOUBL 2.1 invoice, credit note or reminder against the UBL schema and NemHandel's OIOUBL rules in your browser, or a Peppol BIS invoice.
- [Norwegian e-invoice validator: EHF](https://xmlvalid.com/e-invoicing/norway): Check a Norwegian e-invoice in your browser before you send it: EHF Billing (Peppol BIS) with the Norwegian rules, and EHF reminders and forward billing.
- [Swedish e-invoice validator: Peppol BIS](https://xmlvalid.com/e-invoicing/sweden): Check an e-invoice for a Swedish public buyer in your browser: Peppol BIS Billing 3.0 with the Swedish rules, or an older Svefaktura 1.0 against its schema.
- [Finnish e-invoice validator: Finvoice](https://xmlvalid.com/e-invoicing/finland): Check a Finvoice 3.0 invoice in your browser: the schema, whether totals and VAT add up, the reference and IBAN, or a Peppol BIS invoice to a public buyer.
- [Austrian e-invoice validator for e-Rechnung.gv.at](https://xmlvalid.com/e-invoicing/austria): Check an invoice for e-Rechnung.gv.at in your browser: ebInterface 6.1 or 6.0, or Peppol BIS 3.0, with the portal's checks and its error codes (AF-, EBI61-).
- [Czech e-invoice validator: ISDOC](https://xmlvalid.com/e-invoicing/czech-republic): Check an ISDOC invoice in your browser: its schema, the rules of the ISDOC 6.0.2 standard and how its amounts add up, or an EN 16931 invoice for a public body.
- [Portuguese e-invoice validator: CIUS-PT](https://xmlvalid.com/e-invoicing/portugal): Check an e-invoice for a Portuguese public body in your browser: the UBL schema, EN 16931 and eSPap's CIUS-PT rules 2.1.1, with every finding on its line.
- [ZATCA e-invoice validator (FATOORA)](https://xmlvalid.com/e-invoicing/saudi-arabia): Check a Saudi e-invoice for FATOORA in your browser: the UBL 2.1 schema, EN 16931 as ZATCA adapts it and the KSA rules of ZATCA's SDK, each on its line.
- [Brazilian NF-e validator (SEFAZ rules)](https://xmlvalid.com/e-invoicing/brazil): Check a Brazilian NF-e in your browser: the 4.00 schema and the SEFAZ rejection rules, from the access key to ICMS, totals and the 2026 IBS and CBS.
- [Mexican CFDI 4.0 validator (SAT validations)](https://xmlvalid.com/e-invoicing/mexico): Check a Mexican CFDI 4.0 in your browser: the SAT schemas and 163 of SAT's validations with their error codes, from totals and taxes to Pagos 2.0.
- [Malaysian e-invoice validator (MyInvois)](https://xmlvalid.com/e-invoicing/malaysia): Check a Malaysian e-invoice for MyInvois in your browser: UBL 2.1, the fields, codes and general TINs LHDN validates, and the signature of version 1.1.

## E-invoice generator

- [E-invoice generator](https://xmlvalid.com/e-invoice-generator): Fill in a form and get an XRechnung, ZUGFeRD or Peppol BIS invoice that passes the official rules.

## Schema catalog

Official schemas, ready to validate against, by category ([all of them](https://xmlvalid.com/schemas)).

### E-invoicing

- [UBL 2.1 Invoice](https://xmlvalid.com/schemas/ubl-2.1-invoice): The Universal Business Language invoice: the syntax behind Peppol BIS Billing 3.0 and one of the two syntaxes of the European e-invoicing standard EN 16931.
- [UBL 2.1 Credit Note](https://xmlvalid.com/schemas/ubl-2.1-credit-note): The UBL credit note, used alongside the UBL invoice in Peppol BIS Billing 3.0 and EN 16931.
- [UBL 2.5 Invoice](https://xmlvalid.com/schemas/ubl-2.5-invoice): The UBL invoice in its latest version, 2.5 (August 2026), the version Spain's public e-invoicing solution checks against.
- [UBL 2.5 Credit Note](https://xmlvalid.com/schemas/ubl-2.5-credit-note): The UBL credit note in version 2.5 (August 2026), backward compatible with UBL 2.1.
- [UN/CEFACT Cross Industry Invoice D16B](https://xmlvalid.com/schemas/cii-d16b): The CII syntax of EN 16931: the XML inside Factur-X and ZUGFeRD PDFs and the CII flavour of XRechnung.
- [UN/CEFACT Cross Industry Invoice D22B](https://xmlvalid.com/schemas/cii-d22b): The D22B release of the CII schema, the syntax the French e-invoicing reform names for CII invoices, with uncoupled code lists.
- [EN 16931 Invoice (UBL)](https://xmlvalid.com/schemas/en16931-ubl-invoice): A UBL invoice checked against the schema and the business rules of the European e-invoicing standard EN 16931: mandatory fields, code lists and totals.
- [EN 16931 Credit Note (UBL)](https://xmlvalid.com/schemas/en16931-ubl-credit-note): A UBL credit note checked against the schema and the EN 16931 business rules.
- [EN 16931 Invoice (CII)](https://xmlvalid.com/schemas/en16931-cii): A Cross Industry Invoice checked against the D16B schema and the EN 16931 business rules: the XML inside Factur-X and ZUGFeRD (EN 16931 profile).
- [Peppol BIS Billing 3.0 Invoice](https://xmlvalid.com/schemas/peppol-bis-3-invoice): A Peppol invoice checked the way an access point does: UBL 2.1 schema, EN 16931 rules and the Peppol BIS Billing 3.0 rules.
- [Peppol BIS Billing 3.0 Credit Note](https://xmlvalid.com/schemas/peppol-bis-3-credit-note): A Peppol credit note checked against the UBL 2.1 schema, the EN 16931 rules and the Peppol BIS Billing 3.0 rules.
- [Peppol BIS Self-Billing 3.0 Invoice](https://xmlvalid.com/schemas/peppol-bis-sb-invoice): A Peppol self-billed invoice, issued by the buyer in the seller's name, checked against the UBL 2.1 schema, the EN 16931 rules and the Peppol BIS Self-Billing 3.0 rules.
- [Peppol BIS Self-Billing 3.0 Credit Note](https://xmlvalid.com/schemas/peppol-bis-sb-credit-note): A Peppol self-billed credit note, issued by the buyer in the seller's name, checked against the UBL 2.1 schema, the EN 16931 rules and the Peppol BIS Self-Billing 3.0 rules.
- [France e-invoice (UBL)](https://xmlvalid.com/schemas/france-ctc-ubl): An invoice for the French e-invoicing reform in UBL syntax, checked against the UBL 2.1 schema, the EN 16931 rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [France e-invoice (CII)](https://xmlvalid.com/schemas/france-ctc-cii): An invoice for the French e-invoicing reform in CII syntax, checked against the CII D22B schema, the EN 16931 rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [France Factur-X EN 16931](https://xmlvalid.com/schemas/france-factur-x-en16931): The XML of a Factur-X invoice for the French e-invoicing reform, checked against the Factur-X EN 16931 schema and rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [France e-credit note (UBL)](https://xmlvalid.com/schemas/france-ctc-ubl-credit-note): A credit note for the French e-invoicing reform in UBL syntax, checked against the UBL 2.1 CreditNote schema, the EN 16931 rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [France EXTENDED-CTC-FR (UBL)](https://xmlvalid.com/schemas/france-ctc-extended-ubl): An invoice in the French EXTENDED-CTC-FR profile in UBL syntax, checked against the UBL 2.1 schema, the EXTENDED-CTC-FR rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [France EXTENDED-CTC-FR (CII)](https://xmlvalid.com/schemas/france-ctc-extended-cii): An invoice in the French EXTENDED-CTC-FR profile in CII syntax, checked against the CII D22B schema, the EXTENDED-CTC-FR rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [France Factur-X EXTENDED](https://xmlvalid.com/schemas/france-factur-x-extended): The XML of a Factur-X EXTENDED invoice for the French e-invoicing reform, checked against the Factur-X EXTENDED schema and rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [France Factur-X BASIC WL](https://xmlvalid.com/schemas/france-factur-x-basic-wl): The XML of a Factur-X BASIC WL invoice for the French e-invoicing reform, checked against the Factur-X BASIC WL schema and rules and the French rules (BR-FR-\*) published by FNFE-MPE.
- [Croatia eRačun Invoice (UBL)](https://xmlvalid.com/schemas/hr-eracun-invoice): A Croatian eRačun for Fiskalizacija 2.0, checked against the UBL 2.1 schema, the EN 16931 rules and the Croatian rules (HR-BR-\*) published by the Tax Administration.
- [Croatia eRačun Credit Note (UBL)](https://xmlvalid.com/schemas/hr-eracun-credit-note): A Croatian eRačun credit note (odobrenje) for Fiskalizacija 2.0, checked against the UBL 2.1 CreditNote schema, the EN 16931 rules and the Croatian rules (HR-BR-\*).
- [Romania RO e-Factura Invoice (UBL)](https://xmlvalid.com/schemas/ro-efactura-invoice): A Romanian RO e-Factura invoice, checked against the UBL 2.1 schema and the CIUS-RO rules (EN 16931 and BR-RO-\*) the Ministry of Finance publishes for ANAF's validator.
- [Romania RO e-Factura Credit Note (UBL)](https://xmlvalid.com/schemas/ro-efactura-credit-note): A Romanian RO e-Factura credit note, checked against the UBL 2.1 CreditNote schema and the CIUS-RO rules (EN 16931 and BR-RO-\*) the Ministry of Finance publishes for ANAF's validator.
- [Netherlands SI-UBL 2.0 Invoice (NLCIUS)](https://xmlvalid.com/schemas/nl-si-ubl-invoice): A Dutch e-invoice in SI-UBL 2.0, checked against the UBL 2.1 schema and the NLCIUS rules: EN 16931 with the Dutch BR-NL rules.
- [Netherlands SI-UBL 2.0 Credit Note (NLCIUS)](https://xmlvalid.com/schemas/nl-si-ubl-credit-note): A Dutch credit note in SI-UBL 2.0, checked against the UBL 2.1 CreditNote schema and the NLCIUS rules (EN 16931 and BR-NL).
- [Netherlands SI-UBL 2.0 G-account Invoice](https://xmlvalid.com/schemas/nl-si-ubl-gaccount): A Dutch invoice that sends part of the amount to a blocked G-account, checked against the UBL 2.1 schema and the SI-UBL G-account rules.
- [Netherlands NLCIUS Invoice (CII)](https://xmlvalid.com/schemas/nl-nlcius-cii): A Dutch e-invoice in UN/CEFACT CII D16B, checked against the CII schema and the NLCIUS rules for CII (EN 16931 and BR-NL).
- [Portugal CIUS-PT Invoice (UBL)](https://xmlvalid.com/schemas/pt-cius-invoice): A Portuguese e-invoice for the public administration, checked against the UBL 2.1 schema and eSPap's CIUS-PT rules (EN 16931 and BR-CIUS-PT).
- [Portugal CIUS-PT Credit Note (UBL)](https://xmlvalid.com/schemas/pt-cius-credit-note): A Portuguese credit note (nota de crédito) for the public administration, checked against the UBL 2.1 CreditNote schema and the CIUS-PT rules.
- [Saudi Arabia ZATCA Tax Invoice (UBL)](https://xmlvalid.com/schemas/sa-zatca-tax-invoice): A Saudi tax invoice (B2B) for FATOORA, checked against the UBL 2.1 schema and the rules of ZATCA's SDK: EN 16931 as ZATCA adapts it and the KSA rules.
- [Saudi Arabia ZATCA Simplified Tax Invoice (UBL)](https://xmlvalid.com/schemas/sa-zatca-simplified-invoice): A Saudi simplified tax invoice (B2C) for FATOORA, checked against the UBL 2.1 schema and the EN 16931 and KSA rules of ZATCA's SDK.
- [Denmark OIOUBL 2.1 Invoice](https://xmlvalid.com/schemas/dk-oioubl-invoice): A Danish OIOUBL 2.1 invoice, checked against the UBL 2.1 schema and the OIOUBL Schematron of NemHandel.
- [Denmark OIOUBL 2.1 Credit Note](https://xmlvalid.com/schemas/dk-oioubl-credit-note): A Danish OIOUBL 2.1 credit note (kreditnota), checked against the UBL 2.1 CreditNote schema and the OIOUBL Schematron.
- [Denmark OIOUBL 2.1 Reminder](https://xmlvalid.com/schemas/dk-oioubl-reminder): A Danish payment reminder (rykker) in OIOUBL 2.1, checked against the UBL 2.1 Reminder schema and the OIOUBL Schematron.
- [Norway EHF Reminder 3.0](https://xmlvalid.com/schemas/no-ehf-reminder): A Norwegian payment reminder (purring) in EHF Reminder 3.0, checked against the UBL 2.1 Invoice schema and DFØ's EN 16931, Peppol and EHF rules.
- [Norway EHF Forward Billing 3.0](https://xmlvalid.com/schemas/no-ehf-forward-billing): A Norwegian forward billing invoice (viderefakturering), such as grid rent billed by an electricity supplier, checked against the UBL 2.1 schema and DFØ's EN 16931 and Peppol rules for it.
- [Austria ebInterface 6.1](https://xmlvalid.com/schemas/ebinterface-6.1): The Austrian XML invoice standard, accepted by e-Rechnung.gv.at for invoices to the federal government, in its recommended version 6.1.
- [Austria ebInterface 6.0](https://xmlvalid.com/schemas/ebinterface-6.0): The previous version of the Austrian XML invoice standard, still accepted by e-Rechnung.gv.at.
- [Austria e-Rechnung.gv.at (ebInterface 6.1)](https://xmlvalid.com/schemas/at-erechnung-ebinterface-6.1): An ebInterface 6.1 invoice to the Austrian federal government, checked against the schema and the checks e-Rechnung.gv.at makes before it accepts it.
- [Austria e-Rechnung.gv.at (ebInterface 6.0)](https://xmlvalid.com/schemas/at-erechnung-ebinterface-6.0): An ebInterface 6.0 invoice to the Austrian federal government, checked against the schema and the checks e-Rechnung.gv.at makes before it accepts it.
- [Austria e-Rechnung.gv.at Peppol Invoice](https://xmlvalid.com/schemas/at-erechnung-peppol-invoice): A Peppol BIS Billing 3.0 invoice to the Austrian federal government, checked against UBL 2.1, the EN 16931 and Peppol rules and what e-Rechnung.gv.at requires on top.
- [Austria e-Rechnung.gv.at Peppol Credit Note](https://xmlvalid.com/schemas/at-erechnung-peppol-credit-note): A Peppol BIS Billing 3.0 credit note to the Austrian federal government, checked against UBL 2.1, the EN 16931 and Peppol rules and what e-Rechnung.gv.at requires on top.
- [Sweden Svefaktura 1.0](https://xmlvalid.com/schemas/svefaktura-1.0): The Swedish e-invoice format based on UBL 1.0, retired by SFTI in 2021 in favour of Peppol BIS Billing 3, for older systems that still send it.
- [PINT UAE Invoice](https://xmlvalid.com/schemas/pint-ae-invoice): A Peppol PINT UAE invoice for United Arab Emirates, checked against the UBL 2.1 schema, the PINT Billing rules and the UAE rules OpenPeppol publishes.
- [PINT UAE Credit Note](https://xmlvalid.com/schemas/pint-ae-credit-note): A Peppol PINT UAE credit note for United Arab Emirates, checked against the UBL 2.1 schema, the PINT Billing rules and the UAE rules OpenPeppol publishes.
- [PINT UAE Self-Billing Invoice](https://xmlvalid.com/schemas/pint-ae-sb-invoice): A Peppol PINT UAE self-billed invoice, issued by the buyer in the seller's name, checked against the UBL 2.1 schema, the PINT rules and the UAE rules OpenPeppol publishes.
- [PINT UAE Self-Billing Credit Note](https://xmlvalid.com/schemas/pint-ae-sb-credit-note): A Peppol PINT UAE self-billed credit note, issued by the buyer in the seller's name, checked against the UBL 2.1 schema, the PINT rules and the UAE rules OpenPeppol publishes.
- [PINT SG Invoice](https://xmlvalid.com/schemas/pint-sg-invoice): A Peppol PINT SG invoice for Singapore, checked against the UBL 2.1 schema, the PINT Billing rules and the Singapore rules OpenPeppol publishes.
- [PINT SG Credit Note](https://xmlvalid.com/schemas/pint-sg-credit-note): A Peppol PINT SG credit note for Singapore, checked against the UBL 2.1 schema, the PINT Billing rules and the Singapore rules OpenPeppol publishes.
- [PINT JP Invoice](https://xmlvalid.com/schemas/pint-jp-invoice): A Peppol PINT JP invoice for Japan, checked against the UBL 2.1 schema, the PINT Billing rules and the Japanese rules OpenPeppol publishes.
- [PINT JP Self-Billing Invoice](https://xmlvalid.com/schemas/pint-jp-sb-invoice): A Peppol PINT JP self-billed invoice for Japan, issued by the buyer in the seller's name, checked against the UBL 2.1 schema, the PINT rules and the Japanese rules OpenPeppol publishes.
- [PINT A-NZ Invoice](https://xmlvalid.com/schemas/pint-aunz-invoice): A Peppol PINT A-NZ invoice for Australia and New Zealand, checked against the UBL 2.1 schema, the PINT Billing rules and the Australia and New Zealand rules OpenPeppol publishes.
- [PINT A-NZ Credit Note](https://xmlvalid.com/schemas/pint-aunz-credit-note): A Peppol PINT A-NZ credit note for Australia and New Zealand, checked against the UBL 2.1 schema, the PINT Billing rules and the Australia and New Zealand rules OpenPeppol publishes.
- [PINT A-NZ Self-Billing Invoice](https://xmlvalid.com/schemas/pint-aunz-sb-invoice): A Peppol PINT A-NZ self-billed invoice for Australia and New Zealand, issued by the buyer in the seller's name, checked against the UBL 2.1 schema and OpenPeppol's PINT and A-NZ rules.
- [PINT A-NZ Self-Billing Credit Note](https://xmlvalid.com/schemas/pint-aunz-sb-credit-note): A Peppol PINT A-NZ self-billed credit note for Australia and New Zealand, checked against the UBL 2.1 schema and OpenPeppol's PINT and A-NZ rules.
- [PINT MY Invoice](https://xmlvalid.com/schemas/pint-my-invoice): A Peppol PINT MY invoice for Malaysia, checked against the UBL 2.1 schema, the PINT Billing rules and the Malaysian rules OpenPeppol publishes.
- [PINT MY Credit Note](https://xmlvalid.com/schemas/pint-my-credit-note): A Peppol PINT MY credit note for Malaysia, checked against the UBL 2.1 schema, the PINT Billing rules and the Malaysian rules OpenPeppol publishes.
- [PINT MY Self-Billing Invoice](https://xmlvalid.com/schemas/pint-my-sb-invoice): A Peppol PINT MY self-billed invoice for Malaysia, issued by the buyer in the seller's name, checked against the UBL 2.1 schema, the PINT rules and the Malaysian rules OpenPeppol publishes.
- [PINT MY Self-Billing Credit Note](https://xmlvalid.com/schemas/pint-my-sb-credit-note): A Peppol PINT MY self-billed credit note for Malaysia, checked against the UBL 2.1 schema, the PINT rules and the Malaysian rules OpenPeppol publishes.
- [MyInvois e-Invoice](https://xmlvalid.com/schemas/my-myinvois): An e-invoice for LHDN's MyInvois System: invoices, credit, debit and refund notes and their self-billed forms, checked against UBL 2.1 and the MyInvois validations.
- [XRechnung 3.0 Invoice (UBL)](https://xmlvalid.com/schemas/xrechnung-3-ubl): The German e-invoice in UBL syntax, checked against the UBL 2.1 schema, the EN 16931 rules and the XRechnung rules (BR-DE-\*).
- [XRechnung 3.0 Credit Note (UBL)](https://xmlvalid.com/schemas/xrechnung-3-ubl-credit-note): A German XRechnung credit note in UBL syntax, checked against the UBL 2.1 CreditNote schema, the EN 16931 rules and the XRechnung rules (BR-DE-\*).
- [XRechnung 3.0 Invoice (CII)](https://xmlvalid.com/schemas/xrechnung-3-cii): The German e-invoice in CII syntax (also the XML of ZUGFeRD XRECHNUNG profile), checked against the D16B schema, the EN 16931 rules and the XRechnung rules.
- [FatturaPA 1.2.3](https://xmlvalid.com/schemas/fatturapa-1.2.3): The Italian e-invoice: the XML that invoices to the public administration, between businesses and to consumers are sent in through the SdI (Sistema di Interscambio), checked against the schema and the SdI's own checks on the file.
- [FatturaPA simplified 1.0.2](https://xmlvalid.com/schemas/fatturapa-semplificata-1.0.2): The Italian simplified e-invoice (fattura semplificata, art. 21-bis DPR 633/72) sent through the SdI, checked against the schema and the SdI's own checks on the file.
- [Facturae 3.2.2](https://xmlvalid.com/schemas/facturae-3.2.2): The Spanish e-invoice format, required for invoices to the public sector through FACe.
- [Spain B2B e-invoice (SPFE, UBL 2.5)](https://xmlvalid.com/schemas/es-spfe-invoice): A Spanish B2B e-invoice in the format of the AEAT's public e-invoicing solution (SPFE), checked against the UBL 2.5 schema the AEAT validates with.
- [VERI*FACTU invoice records](https://xmlvalid.com/schemas/verifactu-1.0): The invoice records a Spanish invoicing system sends to the AEAT under VERI\*FACTU: one record per invoice issued (alta) or cancelled (anulación), chained by their SHA-256 fingerprints.
- [KSeF FA(3)](https://xmlvalid.com/schemas/ksef-fa-3): The structured invoice of the Polish National e-Invoicing System (KSeF), in the FA(3) version required from February 2026.
- [CFDI 4.0](https://xmlvalid.com/schemas/cfdi-4.0): The Mexican electronic invoice, with the Timbre Fiscal Digital stamp and the Pagos 2.0 payment complement.
- [NF-e 4.00](https://xmlvalid.com/schemas/nfe-4.00): The Brazilian electronic invoice for goods (model 55), in the layout of schema package PL\_010f.
- [NF-e 4.00 with authorisation protocol](https://xmlvalid.com/schemas/nfe-4.00-proc): An authorised NF-e (model 55) with the SEFAZ authorisation protocol, the XML file issuers keep and send to the buyer.
- [Factur-X / ZUGFeRD EN 16931](https://xmlvalid.com/schemas/factur-x-en16931): The XML inside a Factur-X or ZUGFeRD PDF, in the profile that matches the European standard EN 16931, checked against the profile schema and the Factur-X EN 16931 rules.
- [Factur-X / ZUGFeRD EXTENDED](https://xmlvalid.com/schemas/factur-x-extended): The Factur-X and ZUGFeRD profile with more data than EN 16931, for industries that need it.
- [Factur-X / ZUGFeRD BASIC](https://xmlvalid.com/schemas/factur-x-basic): The Factur-X and ZUGFeRD profile with invoice lines and a subset of EN 16931.
- [Factur-X / ZUGFeRD BASIC WL](https://xmlvalid.com/schemas/factur-x-basic-wl): The Factur-X and ZUGFeRD profile with header data and totals but no invoice lines.
- [Factur-X / ZUGFeRD MINIMUM](https://xmlvalid.com/schemas/factur-x-minimum): The smallest Factur-X profile: invoice number, parties and totals.
- [ISDOC 6.0.2](https://xmlvalid.com/schemas/isdoc-6.0.2): The Czech format for electronic invoices, read by most Czech accounting software, checked against its schema, its Schematron rules and the amount rules of the standard.
- [Finvoice 3.0](https://xmlvalid.com/schemas/finvoice-3.0): The Finnish banks' e-invoice format, sent between companies and to consumers' online banks.
- [UBL 2.1 Debit Note](https://xmlvalid.com/schemas/ubl-2.1-debit-note): A UBL document that charges a buyer an additional amount after an invoice.

### Ordering & logistics

- [UBL 2.1 Order](https://xmlvalid.com/schemas/ubl-2.1-order): A purchase order in UBL 2.1, the syntax of Peppol ordering and many e-procurement platforms.
- [UBL 2.1 Order Response](https://xmlvalid.com/schemas/ubl-2.1-order-response): The seller's answer to a UBL order: accepted, rejected or accepted with changes.
- [UBL 2.1 Order Change](https://xmlvalid.com/schemas/ubl-2.1-order-change): A buyer's change to an order that was already sent.
- [UBL 2.1 Order Cancellation](https://xmlvalid.com/schemas/ubl-2.1-order-cancellation): A buyer cancels an order it sent earlier.
- [UBL 2.1 Despatch Advice](https://xmlvalid.com/schemas/ubl-2.1-despatch-advice): A delivery note in UBL 2.1: what was shipped, in which packages, and when it should arrive.
- [UBL 2.1 Receipt Advice](https://xmlvalid.com/schemas/ubl-2.1-receipt-advice): The receiver confirms what arrived, including short or rejected quantities.
- [UBL 2.1 Catalogue](https://xmlvalid.com/schemas/ubl-2.1-catalogue): A product catalogue in UBL 2.1: items, prices and properties a seller offers a buyer.
- [UBL 2.1 Application Response](https://xmlvalid.com/schemas/ubl-2.1-application-response): A generic UBL response to another document: received, accepted, rejected, with reasons.
- [UBL 2.1 Quotation](https://xmlvalid.com/schemas/ubl-2.1-quotation): A seller's quotation in answer to a request for quotation.
- [Peppol Order](https://xmlvalid.com/schemas/peppol-order): A Peppol order (BIS Ordering 3), checked against the UBL 2.1 schema and the Peppol order rules.
- [Peppol Order Response](https://xmlvalid.com/schemas/peppol-order-response): A Peppol order response, checked against the UBL 2.1 schema and the Peppol rules.
- [Peppol Order Change](https://xmlvalid.com/schemas/peppol-order-change): A Peppol order change, checked against the UBL 2.1 schema and the Peppol rules.
- [Peppol Order Cancellation](https://xmlvalid.com/schemas/peppol-order-cancellation): A Peppol order cancellation, checked against the UBL 2.1 schema and the Peppol rules.
- [Peppol Despatch Advice](https://xmlvalid.com/schemas/peppol-despatch-advice): A Peppol despatch advice, checked against the UBL 2.1 schema and the Peppol rules.
- [Peppol Catalogue](https://xmlvalid.com/schemas/peppol-catalogue): A Peppol catalogue, checked against the UBL 2.1 schema and the Peppol rules.
- [Peppol Catalogue Response](https://xmlvalid.com/schemas/peppol-catalogue-response): The buyer's answer to a Peppol catalogue, checked against the UBL 2.1 schema and the Peppol rules.
- [Peppol Invoice Response](https://xmlvalid.com/schemas/peppol-invoice-response): The buyer tells the seller what happened to a Peppol invoice: received, accepted, rejected, paid.
- [Peppol Message Level Response](https://xmlvalid.com/schemas/peppol-mlr): The technical acknowledgement of a Peppol message: accepted, or rejected with the failed rules.

### Payments · ISO 20022

- [ISO 20022 pain.001.001.09](https://xmlvalid.com/schemas/iso20022-pain.001.001.09): A company asks its bank to make one or more credit transfers. The message behind SEPA payment files.
- [ISO 20022 pain.002.001.10](https://xmlvalid.com/schemas/iso20022-pain.002.001.10): The bank's answer to a payment file: which transfers or direct debits were accepted and which were rejected, with a reason code.
- [ISO 20022 pain.008.001.08](https://xmlvalid.com/schemas/iso20022-pain.008.001.08): A creditor asks its bank to collect direct debits. The message behind SEPA Core and B2B direct debit files.
- [ISO 20022 pacs.008.001.08](https://xmlvalid.com/schemas/iso20022-pacs.008.001.08): A customer credit transfer between banks, the message that replaces SWIFT MT103.
- [ISO 20022 camt.052.001.08](https://xmlvalid.com/schemas/iso20022-camt.052.001.08): An intraday account report from a bank, the XML successor of MT942.
- [ISO 20022 camt.053.001.08](https://xmlvalid.com/schemas/iso20022-camt.053.001.08): An end-of-day account statement from a bank, the XML successor of MT940.
- [ISO 20022 camt.054.001.08](https://xmlvalid.com/schemas/iso20022-camt.054.001.08): A notification of individual debits and credits on an account, the XML successor of MT900 and MT910.
- [ISO 20022 pain.001.001.03](https://xmlvalid.com/schemas/iso20022-pain.001.001.03): The 2009 version of the payment initiation message, still produced by many ERP systems and accepted by many banks.
- [ISO 20022 pain.008.001.02](https://xmlvalid.com/schemas/iso20022-pain.008.001.02): The 2009 version of the direct debit initiation message, the SEPA direct debit format until 2023.
- [ISO 20022 pain.002.001.03](https://xmlvalid.com/schemas/iso20022-pain.002.001.03): The status report that answers pain.001.001.03 and pain.008.001.02 files.
- [ISO 20022 camt.053.001.02](https://xmlvalid.com/schemas/iso20022-camt.053.001.02): The 2009 version of the end-of-day bank statement, the one many banks still deliver.
- [ISO 20022 pacs.002.001.10](https://xmlvalid.com/schemas/iso20022-pacs.002.001.10): A bank reports to another bank whether a payment instruction was accepted, settled or rejected.
- [ISO 20022 pacs.009.001.08](https://xmlvalid.com/schemas/iso20022-pacs.009.001.08): A credit transfer between banks for their own account, the message that replaces SWIFT MT202.
- [ISO 20022 pacs.004.001.09](https://xmlvalid.com/schemas/iso20022-pacs.004.001.09): A bank sends the funds of a settled payment back, with a return reason.
- [ISO 20022 camt.056.001.08](https://xmlvalid.com/schemas/iso20022-camt.056.001.08): A bank asks another bank to cancel a payment it sent, the message that replaces MT192 and MT292.
- [ISO 20022 camt.029.001.09](https://xmlvalid.com/schemas/iso20022-camt.029.001.09): The answer to a cancellation request or another investigation, the message that replaces MT196 and MT296.
- [ISO 20022 pain.013.001.07](https://xmlvalid.com/schemas/iso20022-pain.013.001.07): A request to pay: the payee asks the payer to start a credit transfer.
- [ISO 20022 pain.014.001.07](https://xmlvalid.com/schemas/iso20022-pain.014.001.07): The answer to a request to pay: accepted, rejected or pending.

### Tax reporting

- [JPK_V7M(3)](https://xmlvalid.com/schemas/jpk-v7m-3): The monthly Polish VAT return combined with the sales and purchase records (JPK\_VAT with declaration).
- [JPK_FA(4)](https://xmlvalid.com/schemas/jpk-fa-4): The Polish audit file of issued invoices, sent on request of the tax authority.
- [SAF-T Financial NO 1.40](https://xmlvalid.com/schemas/saf-t-no-1.40): The Norwegian standard audit file of a company's accounts: general ledger, customers, suppliers and transactions.

### Healthcare

- [HL7 CDA Release 2](https://xmlvalid.com/schemas/hl7-cda-r2): The base schema of clinical documents such as discharge summaries, referrals and C-CDA documents.
- [HL7 FHIR R4](https://xmlvalid.com/schemas/fhir-r4): Any FHIR R4 resource in its XML form: Patient, Observation, Bundle and the other 140-odd resource types.

### Web

- [Sitemap 0.9](https://xmlvalid.com/schemas/sitemap-0.9): The sitemap.xml format read by Google, Bing and other search engines.
- [Sitemap index 0.9](https://xmlvalid.com/schemas/sitemap-index-0.9): An index that points search engines at several sitemap files.
- [XHTML 1.0 Strict](https://xmlvalid.com/schemas/xhtml-1.0-strict): The Strict document type of XHTML 1.0, for pages and content exports written as XML.
- [Atom 1.0](https://xmlvalid.com/schemas/atom-1.0): Blog, podcast and changelog feeds in the Atom format, as read by feed readers and aggregators.
- [Sitemap with Google extensions](https://xmlvalid.com/schemas/sitemap-extensions): A sitemap.xml that also lists images, videos or news articles with Google's sitemap extensions.
- [XHTML 1.1](https://xmlvalid.com/schemas/xhtml-1.1): XHTML 1.1, the modular XHTML used by EPUB 2 books and some publishing pipelines.
- [SVG 1.1](https://xmlvalid.com/schemas/svg-1.1): SVG images checked against the SVG 1.1 DTD: elements, attributes and nesting.

### Maps & GPS

- [GPX 1.1](https://xmlvalid.com/schemas/gpx-1.1): Waypoints, routes and tracks exported by GPS devices, sports watches and mapping apps.
- [OGC KML 2.2](https://xmlvalid.com/schemas/kml-2.2): Placemarks, paths and polygons for Google Earth and other map viewers.
- [TCX v2](https://xmlvalid.com/schemas/tcx-2): Workout files from sports watches and fitness apps: laps, track points, heart rate and cadence.

### Developer

- [Maven POM 4.0.0](https://xmlvalid.com/schemas/maven-pom-4.0.0): The pom.xml of Maven projects: dependencies, build plugins, modules.
- [SOAP 1.1 Envelope](https://xmlvalid.com/schemas/soap-1.1-envelope): The envelope, header, body and fault of SOAP 1.1 messages.
- [SOAP 1.2 Envelope](https://xmlvalid.com/schemas/soap-1.2-envelope): The envelope, header, body and fault of SOAP 1.2 messages.
- [Jakarta EE web.xml 6.0](https://xmlvalid.com/schemas/jakarta-web-app-6.0): The web.xml of Java web applications on Jakarta EE 10 servers: servlets, filters, mappings, security.
- [Jakarta Persistence 3.0](https://xmlvalid.com/schemas/jakarta-persistence-3.0): The persistence.xml of JPA applications (Hibernate, EclipseLink) on the jakarta.persistence namespace.
- [Maven settings 1.2.0](https://xmlvalid.com/schemas/maven-settings-1.2.0): The Maven settings.xml in ~/.m2 or on a CI runner: servers, mirrors, proxies and profiles.
- [Liquibase changelog 4.33](https://xmlvalid.com/schemas/liquibase-4.33): Liquibase database changelogs in XML: change sets, tables, columns, constraints, rollbacks.
- [WSDL 1.1](https://xmlvalid.com/schemas/wsdl-1.1): Web service descriptions for SOAP services: types, messages, port types, bindings and services.
- [SAML 2.0](https://xmlvalid.com/schemas/saml-2.0-protocol): SAML 2.0 single sign-on messages: authentication requests, responses with assertions, logout.
- [XML Signature](https://xmlvalid.com/schemas/xmldsig): The structure of an XML digital signature: SignedInfo, references, digests and key information.
- [XSLT 2.0](https://xmlvalid.com/schemas/xslt-2.0): XSLT 2.0 stylesheets checked against the W3C schema for XSLT: elements, attributes and where they may appear.
- [XML Schema 1.0](https://xmlvalid.com/schemas/xsd-1.0): Check an .xsd file itself against the W3C schema for schemas.
- [JUnit XML report](https://xmlvalid.com/schemas/junit-xml): The JUnit XML test report that CI systems read (Jenkins, GitLab, GitHub Actions reporters).
- [XLIFF 1.2](https://xmlvalid.com/schemas/xliff-1.2): Translation files exchanged with translators and CAT tools, as used by Xcode, Angular and Symfony.
- [XLIFF 2.0](https://xmlvalid.com/schemas/xliff-2.0): XLIFF 2.0 translation files: units, segments and inline codes.
- [MyBatis 3 mapper](https://xmlvalid.com/schemas/mybatis-3-mapper): MyBatis mapper XML files: SQL statements, result maps and dynamic SQL.
- [MyBatis 3 configuration](https://xmlvalid.com/schemas/mybatis-3-config): The mybatis-config.xml file: settings, type aliases, environments and mappers.
- [Hibernate configuration 3.0](https://xmlvalid.com/schemas/hibernate-configuration-3.0): The hibernate.cfg.xml file, still read by Hibernate up to version 6.
- [Log4j 1.2 configuration](https://xmlvalid.com/schemas/log4j-1.2): The log4j.xml configuration of Log4j 1.2 and of Reload4j, its maintained fork.
- [Spring beans 2.0 DTD](https://xmlvalid.com/schemas/spring-beans-2.0): Spring application contexts written against the beans DTD.
- [Apple property list 1.0](https://xmlvalid.com/schemas/apple-plist-1.0): XML property lists: Info.plist of apps, launchd jobs, configuration profiles.

### Publishing

- [DocBook 5.2](https://xmlvalid.com/schemas/docbook-5.2): Books, articles and reference documentation written in DocBook.
- [DocBook 4.5](https://xmlvalid.com/schemas/docbook-4.5): DocBook documents written before version 5: no namespace, DTD instead of RelaxNG.
- [DITA 1.3 topic](https://xmlvalid.com/schemas/dita-1.3-topic): A generic DITA topic, the base of every DITA information type.
- [DITA 1.3 concept](https://xmlvalid.com/schemas/dita-1.3-concept): A DITA concept topic: background and explanation.
- [DITA 1.3 task](https://xmlvalid.com/schemas/dita-1.3-task): A DITA task topic: step-by-step instructions.
- [DITA 1.3 reference](https://xmlvalid.com/schemas/dita-1.3-reference): A DITA reference topic: tables, properties and lookup information.
- [DITA 1.3 map](https://xmlvalid.com/schemas/dita-1.3-map): A DITA map: the table of contents that orders topics into a publication.
- [DITA 1.3 bookmap](https://xmlvalid.com/schemas/dita-1.3-bookmap): A DITA bookmap: a map with book structure, front matter, chapters and appendices.
- [JATS 1.3](https://xmlvalid.com/schemas/jats-1.3): Journal articles in JATS, the format PubMed Central, Crossref workflows and most scholarly publishers use.
- [Crossref DOI deposit 5.4.0](https://xmlvalid.com/schemas/crossref-5.4.0): DOI deposits for Crossref: the doi\_batch file that registers journal articles, books, conference papers, preprints and datasets.
- [TEI P5](https://xmlvalid.com/schemas/tei-p5): Texts encoded with the Text Encoding Initiative guidelines, the standard of digital humanities.
- [MathML 3](https://xmlvalid.com/schemas/mathml-3): Mathematical formulas in MathML 3, presentation and content markup.
- [EPUB 3 package document](https://xmlvalid.com/schemas/epub-3-package): The package document of an EPUB 3 book: metadata, manifest and spine, checked with the grammar and rules epubcheck uses.
- [EPUB container.xml](https://xmlvalid.com/schemas/epub-ocf-container): The META-INF/container.xml of an EPUB, which tells reading systems where the package document is.
- [EPUB 2 OPF 2.0.1](https://xmlvalid.com/schemas/epub-2-opf): The content.opf of an EPUB 2 book, checked with the grammar and rules epubcheck uses.
- [NCX 2005-1](https://xmlvalid.com/schemas/epub-2-ncx): The NCX navigation file of EPUB 2 books, also kept in many EPUB 3 books for older readers.
- [ONIX for Books 3.1](https://xmlvalid.com/schemas/onix-3.1): Book metadata feeds from publishers to retailers, libraries and aggregators, in ONIX 3.1 with reference tag names.
- [ONIX for Books 3.1 short tags](https://xmlvalid.com/schemas/onix-3.1-short): ONIX 3.1 book metadata with short tag names (b001, x507 …).
- [ONIX for Books 3.0](https://xmlvalid.com/schemas/onix-3.0): ONIX 3.0 book metadata with reference tag names, the version most trading partners still take.
- [ONIX for Books 3.0 short tags](https://xmlvalid.com/schemas/onix-3.0-short): ONIX 3.0 book metadata with short tag names.

### Libraries & archives

- [MARCXML](https://xmlvalid.com/schemas/marcxml): MARC 21 bibliographic, authority and holdings records in XML, as exported by library systems.
- [MODS 3.8](https://xmlvalid.com/schemas/mods-3.8): Bibliographic descriptions in MODS, used by digital libraries and repositories.
- [METS 1.12](https://xmlvalid.com/schemas/mets-1.12): Packages of digitised objects: files, structure maps and the metadata that goes with them.
- [EAD3](https://xmlvalid.com/schemas/ead3): Archival finding aids: the description of a collection, its series and its files.

## Business rules

Each rule has its own page with its message, the XPath it tests and, for the common ones, why it fails and how to fix it: https://xmlvalid.com/rules/BR-CO-15.

- [EN 16931 rules (UBL) 1.3.17](https://xmlvalid.com/rules/sets/en16931-ubl): 982 rules by CEN/TC 434, European Commission
- [EN 16931 rules (CII) 1.3.17](https://xmlvalid.com/rules/sets/en16931-cii): 810 rules by CEN/TC 434, European Commission
- [Peppol BIS Billing 3.0 rules 3.0.21](https://xmlvalid.com/rules/sets/peppol-bis-3-ubl): 165 rules by OpenPeppol
- [Peppol BIS Self-Billing 3.0 rules 3.0.2](https://xmlvalid.com/rules/sets/peppol-bis-sb-ubl): 62 rules by OpenPeppol
- [French e-invoicing rules (UBL) 1.4.0.04](https://xmlvalid.com/rules/sets/fr-ctc-ubl): 175 rules by FNFE-MPE
- [French e-invoicing rules (CII) 1.4.0.04](https://xmlvalid.com/rules/sets/fr-ctc-cii): 171 rules by FNFE-MPE
- [EXTENDED-CTC-FR rules (UBL) 1.4.0.04](https://xmlvalid.com/rules/sets/fr-extended-ubl): 953 rules by FNFE-MPE, from the EN 16931 rules 1.3.16
- [EXTENDED-CTC-FR rules (CII) 1.4.0.04](https://xmlvalid.com/rules/sets/fr-extended-cii): 772 rules by FNFE-MPE, from the EN 16931 rules 1.3.16
- [Croatian eRačun rules (UBL) 13.03.2026](https://xmlvalid.com/rules/sets/hr-cius-ubl): 62 rules by Porezna uprava (Croatian Tax Administration)
- [Romanian RO e-Factura rules (UBL) 1.0.9](https://xmlvalid.com/rules/sets/ro-cius-ubl): 1,098 rules by Ministerul Finanțelor (Romanian Ministry of Finance), with the EN 16931 rules
- [RO e-Factura tax code checks ANAF validator 1.3.0](https://xmlvalid.com/rules/sets/ro-anaf-ids): 6 rules by xmlvalid, after the checks of ANAF's RO e-Factura validator
- [SI-UBL 2.0 rules (NLCIUS, UBL) 2.0.3.13](https://xmlvalid.com/rules/sets/nl-si-ubl): 1,014 rules by Peppol Autoriteit NL (Stichting Simplerinvoicing), with the EN 16931 rules 1.3.16
- [NLCIUS rules (CII) 1.0.3.13](https://xmlvalid.com/rules/sets/nl-nlcius-cii): 840 rules by Peppol Autoriteit NL (Stichting Simplerinvoicing), with the EN 16931 rules 1.3.16
- [CIUS-PT rules (Portugal, UBL) 2.1.1](https://xmlvalid.com/rules/sets/pt-cius-ubl): 1,154 rules by eSPap (Entidade de Serviços Partilhados da Administração Pública), with the EN 16931 rules
- [ZATCA e-invoicing rules (Saudi Arabia) SDK 3.4.6](https://xmlvalid.com/rules/sets/sa-zatca): 142 rules by ZATCA (Zakat, Tax and Customs Authority)
- [ZATCA cryptographic stamp and QR code checks Security Features Implementation Standards 1.1, SDK 3.4.6](https://xmlvalid.com/rules/sets/sa-zatca-stamp): 16 rules by xmlvalid, after ZATCA's Electronic Invoice Security Features Implementation Standards and the stamps of its SDK
- [OIOUBL 2.1 Invoice rules (Denmark) 1.17.2](https://xmlvalid.com/rules/sets/dk-oioubl-invoice): 486 rules by Erhvervsstyrelsen (Danish Business Authority), NemHandel
- [OIOUBL 2.1 Credit Note rules (Denmark) 1.17.2](https://xmlvalid.com/rules/sets/dk-oioubl-credit-note): 456 rules by Erhvervsstyrelsen (Danish Business Authority), NemHandel
- [OIOUBL 2.1 Reminder rules (Denmark) 1.17.2](https://xmlvalid.com/rules/sets/dk-oioubl-reminder): 393 rules by Erhvervsstyrelsen (Danish Business Authority), NemHandel
- [EHF Reminder 3.0 rules (Norway) release 2026-09-29](https://xmlvalid.com/rules/sets/no-ehf-reminder): 342 rules by DFØ (Norwegian Agency for Public and Financial Management)
- [PINT Billing rules 1.1.3](https://xmlvalid.com/rules/sets/pint-billing): 170 rules by OpenPeppol
- [PINT Billing rules (as shipped with PINT AE) 1.0.4](https://xmlvalid.com/rules/sets/pint-billing-ae): 170 rules by OpenPeppol
- [PINT AE rules (United Arab Emirates) 1.0.4](https://xmlvalid.com/rules/sets/pint-ae): 132 rules by OpenPeppol
- [PINT SG rules (Singapore) 1.4.1](https://xmlvalid.com/rules/sets/pint-sg): 92 rules by OpenPeppol
- [PINT JP rules (Japan) 1.1.3](https://xmlvalid.com/rules/sets/pint-jp): 43 rules by OpenPeppol
- [PINT A-NZ rules (Australia and New Zealand) 1.1.3](https://xmlvalid.com/rules/sets/pint-aunz): 74 rules by OpenPeppol
- [PINT MY rules (Malaysia) 1.3.1](https://xmlvalid.com/rules/sets/pint-my): 28 rules by OpenPeppol
- [SdI checks (FatturaPA ordinary invoice) Specifiche tecniche 1.9.1](https://xmlvalid.com/rules/sets/it-sdi-ordinaria): 38 rules by xmlvalid, after the checks Agenzia delle Entrate lists for the SdI
- [SdI checks (FatturaPA simplified invoice) Specifiche tecniche 1.9.1](https://xmlvalid.com/rules/sets/it-sdi-semplificata): 18 rules by xmlvalid, after the checks Agenzia delle Entrate lists for the SdI
- [e-Rechnung.gv.at checks (ebInterface) Fehlerliste, October 2026](https://xmlvalid.com/rules/sets/at-erb-ebinterface): 52 rules by xmlvalid, after the checks e-Rechnung.gv.at lists for invoices to the Austrian federal government
- [ISDOC amounts and identifiers Standard ISDOC 6.0.2](https://xmlvalid.com/rules/sets/cz-isdoc-xv): 16 rules by xmlvalid, after the rules of the ISDOC 6.0.2 standard (appendix A) its Schematron does not check
- [Finvoice 3.0 calculation and payment rules Implementation guidelines 2.6 (16 September 2025)](https://xmlvalid.com/rules/sets/fi-finvoice-xv): 14 rules by xmlvalid, after Finance Finland's Finvoice 3.0 Implementation Guidelines
- [VERI*FACTU checks of the AEAT Validaciones 1.2.2 (8 April 2026)](https://xmlvalid.com/rules/sets/es-verifactu): 98 rules by xmlvalid, after the AEAT's validations document and error codes for VERI*FACTU records
- [Facturae validation rules of the Spanish public sector Orden HAP/1650/2015, Facturae 3.2.x description of 6 June 2017](https://xmlvalid.com/rules/sets/es-facturae): 27 rules by xmlvalid, after the validation rules of Orden HAP/1650/2015 (anexo II) and the formulas of the Facturae format
- [SAT validations of CFDI 4.0 and Pagos 2.0 Matrices of 25 March 2026 and Pagos 2.0 rev. B](https://xmlvalid.com/rules/sets/mx-cfdi40): 163 rules by xmlvalid, after SAT's error matrices and the validations of Anexo 20
- [MyInvois validations of LHDN (Malaysia) MyInvois SDK of 25 September 2026](https://xmlvalid.com/rules/sets/my-myinvois): 75 rules by xmlvalid, after the MyInvois SDK of the Inland Revenue Board of Malaysia (LHDN) and its e-Invoice guidelines
- [SEFAZ authorisation rules of NF-e 4.00 MOC 7.0 Anexo I, NTs up to 2026.010](https://xmlvalid.com/rules/sets/br-nfe): 353 rules by xmlvalid, after the validation rules of the Manual de Orientação do Contribuinte and its Notas Técnicas
- [e-Rechnung.gv.at checks (UBL) Fehlerliste, October 2026](https://xmlvalid.com/rules/sets/at-erb-ubl): 15 rules by xmlvalid, after the checks e-Rechnung.gv.at lists for invoices to the Austrian federal government
- [XRechnung 3.0 rules (UBL) 2.6.0](https://xmlvalid.com/rules/sets/xrechnung-3-ubl): 77 rules by KoSIT
- [XRechnung 3.0 rules (CII) 2.6.0](https://xmlvalid.com/rules/sets/xrechnung-3-cii): 74 rules by KoSIT
- [Factur-X MINIMUM rules 1.09](https://xmlvalid.com/rules/sets/factur-x-minimum): 99 rules by FNFE-MPE and FeRD
- [Factur-X BASIC WL rules 1.09](https://xmlvalid.com/rules/sets/factur-x-basic-wl): 278 rules by FNFE-MPE and FeRD
- [Factur-X BASIC rules 1.09](https://xmlvalid.com/rules/sets/factur-x-basic): 284 rules by FNFE-MPE and FeRD
- [Factur-X EN 16931 rules 1.09.2](https://xmlvalid.com/rules/sets/factur-x-en16931): 433 rules by FNFE-MPE and FeRD
- [Factur-X EXTENDED rules 1.09.2](https://xmlvalid.com/rules/sets/factur-x-extended): 943 rules by FNFE-MPE and FeRD
- [Peppol Order rules 3.7](https://xmlvalid.com/rules/sets/peppol-order): 330 rules by OpenPeppol
- [Peppol Order Response rules 3.2](https://xmlvalid.com/rules/sets/peppol-order-response): 124 rules by OpenPeppol
- [Peppol Despatch Advice rules 3.5](https://xmlvalid.com/rules/sets/peppol-despatch-advice): 210 rules by OpenPeppol
- [Peppol Catalogue rules 3.5](https://xmlvalid.com/rules/sets/peppol-catalogue): 236 rules by OpenPeppol
- [Peppol Catalogue Response rules 3.0](https://xmlvalid.com/rules/sets/peppol-catalogue-response): 54 rules by OpenPeppol
- [Peppol Invoice Response rules 3.1](https://xmlvalid.com/rules/sets/peppol-invoice-response): 82 rules by OpenPeppol
- [Peppol Message Level Response rules 3.0](https://xmlvalid.com/rules/sets/peppol-mlr): 59 rules by OpenPeppol
- [Peppol Order Change rules 3.2](https://xmlvalid.com/rules/sets/peppol-order-change): 314 rules by OpenPeppol
- [Peppol Order Cancellation rules 3.0](https://xmlvalid.com/rules/sets/peppol-order-cancellation): 108 rules by OpenPeppol

## XML error messages explained

- [Opening and ending tag mismatch](https://xmlvalid.com/errors/opening-and-ending-tag-mismatch): An end tag does not match the start tag it should close.
- [Premature end of data in tag](https://xmlvalid.com/errors/premature-end-of-data): The document ends while an element is still open.
- [Extra content at the end of the document](https://xmlvalid.com/errors/extra-content-at-the-end-of-the-document): Something follows the root element, which must be the last thing in the document.
- [Start tag expected, '<' not found](https://xmlvalid.com/errors/start-tag-expected): The document does not start with an element.
- [Document is empty](https://xmlvalid.com/errors/document-is-empty): There is no element in the document at all.
- [Entity not defined](https://xmlvalid.com/errors/entity-not-defined): The document uses a named entity, like &amp;nbsp;, that XML does not know.
- [xmlParseEntityRef: no name](https://xmlvalid.com/errors/xmlparseentityref-no-name): A bare ampersand (&amp;) in text or an attribute.
- [Specification mandates value for attribute](https://xmlvalid.com/errors/specification-mandates-value-for-attribute): An attribute without a value, or a space inside a tag name.
- [AttValue: " or ' expected](https://xmlvalid.com/errors/attvalue-quote-expected): An attribute value is not in quotes.
- [Unescaped '<' not allowed in attributes values](https://xmlvalid.com/errors/unescaped-less-than-in-attribute): A &lt; character inside an attribute value.
- [StartTag: invalid element name](https://xmlvalid.com/errors/starttag-invalid-element-name): A &lt; that does not start a valid element name.
- [Attribute redefined](https://xmlvalid.com/errors/attribute-redefined): The same attribute appears twice on one element.
- [XML declaration allowed only at the start of the document](https://xmlvalid.com/errors/xml-declaration-allowed-only-at-the-start): Something comes before …?, or there are two declarations.
- [PCDATA invalid Char value](https://xmlvalid.com/errors/pcdata-invalid-char-value): A control character that XML 1.0 does not allow.
- [Invalid bytes in character encoding](https://xmlvalid.com/errors/invalid-bytes-in-character-encoding): The file is not in the encoding it claims (UTF-8 unless it says otherwise).
- [Namespace prefix is not defined](https://xmlvalid.com/errors/namespace-prefix-is-not-defined): An element or attribute uses a prefix (inv:) without its xmlns:inv declaration.
- [Comment not terminated](https://xmlvalid.com/errors/comment-not-terminated): A comment is not closed with --&gt;, or contains --.
- [This element is not expected](https://xmlvalid.com/errors/this-element-is-not-expected): An element is in the wrong place: out of order, misspelt, or not allowed there.
- [Is not a valid value of the atomic type](https://xmlvalid.com/errors/not-a-valid-value-of-the-atomic-type): A value does not match its data type: a number, a date, a boolean…
- [Missing child element(s)](https://xmlvalid.com/errors/missing-child-elements): A required child element is missing.
- [The attribute is required but missing](https://xmlvalid.com/errors/attribute-is-required-but-missing): An attribute declared with use="required" is not on the element.
- [The attribute is not allowed](https://xmlvalid.com/errors/attribute-is-not-allowed): An attribute the schema does not declare for this element.
- [No matching global declaration available for the validation root](https://xmlvalid.com/errors/no-matching-global-declaration): The schema has no top-level declaration for the document's root element.
- [[facet 'enumeration'] The value is not an element of the set](https://xmlvalid.com/errors/facet-enumeration): A value that is not on the schema's list of allowed values.
- [[facet 'pattern'] The value is not accepted by the pattern](https://xmlvalid.com/errors/facet-pattern): A value that does not match the regular expression the schema requires.
- [[facet 'maxLength'] The value exceeds the allowed length](https://xmlvalid.com/errors/facet-length): A value longer (or shorter) than the schema allows.
- [Character content other than whitespace is not allowed](https://xmlvalid.com/errors/character-content-element-only): Text directly inside an element that may contain only child elements.
- [No declaration for element](https://xmlvalid.com/errors/no-declaration-for-element): The DTD does not declare an element the document uses.
- [Element content does not follow the DTD](https://xmlvalid.com/errors/content-does-not-follow-the-dtd): An element's children don't match its content model: order, count or which ones.
- [No declaration for attribute](https://xmlvalid.com/errors/no-declaration-for-attribute): The DTD does not declare an attribute the element carries.
- [Element does not carry attribute](https://xmlvalid.com/errors/element-does-not-carry-attribute): An attribute declared #REQUIRED in the DTD is missing.
- [Did not expect element there](https://xmlvalid.com/errors/did-not-expect-element): An element the RelaxNG pattern does not allow at this point.
- [Expecting an element, got nothing](https://xmlvalid.com/errors/expecting-an-element-got-nothing): A required element is missing at the end of its parent.
- [Type doesn't allow value](https://xmlvalid.com/errors/type-does-not-allow-value): A value that does not fit the datatype in the RelaxNG pattern.
- [Invalid attribute for element](https://xmlvalid.com/errors/invalid-attribute-for-element): An attribute the pattern does not allow, or a required one missing.
- [cvc-complex-type.2.4.a: Invalid content was found starting with element (Java)](https://xmlvalid.com/errors/cvc-complex-type-2-4-a): Java found an element where the schema expects a different one: out of order, misspelt, or in another namespace.
- [cvc-complex-type.2.4.b: The content of element is not complete (Java)](https://xmlvalid.com/errors/cvc-complex-type-2-4-b): An element ended before all the children the schema requires appeared.
- [cvc-complex-type.2.4.d: No child element is expected at this point (Java)](https://xmlvalid.com/errors/cvc-complex-type-2-4-d): An element appears after the parent's content is already complete: the schema allows nothing more there.
- [cvc-complex-type.2.3: Element cannot have character [children] (Java)](https://xmlvalid.com/errors/cvc-complex-type-2-3): Text appears directly inside an element that may only contain other elements.
- [cvc-complex-type.3.2.2: Attribute is not allowed to appear in element (Java)](https://xmlvalid.com/errors/cvc-complex-type-3-2-2): An element carries an attribute its type in the schema does not declare.
- [cvc-complex-type.4: Attribute must appear on element (Java)](https://xmlvalid.com/errors/cvc-complex-type-4): A required attribute is missing from an element.
- [cvc-datatype-valid.1.2.1: Is not a valid value for (Java)](https://xmlvalid.com/errors/cvc-datatype-valid-1-2-1): A value is not in the format of its XML Schema datatype.
- [cvc-type.3.1.3: The value of element is not valid (Java)](https://xmlvalid.com/errors/cvc-type-3-1-3): The text of an element does not satisfy its type; the message before it says why.
- [cvc-attribute.3: The value of attribute is not valid with respect to its type (Java)](https://xmlvalid.com/errors/cvc-attribute-3): An attribute's value does not satisfy its type; the message before it says why.
- [cvc-enumeration-valid: Value is not facet-valid with respect to enumeration (Java)](https://xmlvalid.com/errors/cvc-enumeration-valid): A value is not one of the fixed values the schema allows.
- [cvc-pattern-valid: Value is not facet-valid with respect to pattern (Java)](https://xmlvalid.com/errors/cvc-pattern-valid): A value does not match the regular expression its type requires.
- [cvc-maxLength-valid: Value with length is not facet-valid with respect to maxLength (Java)](https://xmlvalid.com/errors/cvc-maxlength-valid): A value is longer than its type allows.
- [cvc-elt.1.a: Cannot find the declaration of element (Java)](https://xmlvalid.com/errors/cvc-elt-1-a): The document's root element is not declared in the schema it is validated against.
- [Content is not allowed in prolog (Java)](https://xmlvalid.com/errors/content-is-not-allowed-in-prolog): Something other than markup comes before the root element.
- [The element type must be terminated by the matching end-tag (Java)](https://xmlvalid.com/errors/element-type-must-be-terminated-by-the-matching-end-tag): An element is still open when an end tag for another element arrives.
- [The markup in the document following the root element must be well-formed (Java)](https://xmlvalid.com/errors/markup-following-the-root-element-must-be-well-formed): Something follows the root element: an XML document has exactly one.
- [XML document structures must start and end within the same entity (Java)](https://xmlvalid.com/errors/xml-document-structures-must-start-and-end-within-the-same-entity): The document ends while an element, comment or CDATA section is still open.
- [Premature end of file (Java)](https://xmlvalid.com/errors/premature-end-of-file): The parser reached the end of the input before finding a root element.
- [The entity was referenced, but not declared (Java)](https://xmlvalid.com/errors/entity-was-referenced-but-not-declared): The document uses a named entity, like &amp;nbsp;, that XML does not define.
- [The entity name must immediately follow the '&' in the entity reference (Java)](https://xmlvalid.com/errors/entity-name-must-immediately-follow-the-ampersand): A bare ampersand (&amp;) in text or in an attribute.
- [Invalid byte 1 of 1-byte UTF-8 sequence (Java)](https://xmlvalid.com/errors/invalid-byte-1-of-1-byte-utf-8-sequence): The input is read as UTF-8 but contains bytes that are not valid UTF-8.
- [The processing instruction target matching "[xX][mM][lL]" is not allowed (Java)](https://xmlvalid.com/errors/processing-instruction-target-matching-xml-is-not-allowed): An XML declaration (…?) appears somewhere other than the very start.
- [The prefix for element is not bound (Java)](https://xmlvalid.com/errors/prefix-for-element-is-not-bound): An element uses a namespace prefix that no xmlns declaration defines.
- [Attribute was already specified for element (Java)](https://xmlvalid.com/errors/attribute-was-already-specified-for-element): The same attribute appears twice on one element.
- [The value of attribute must not contain the '<' character (Java)](https://xmlvalid.com/errors/attribute-value-must-not-contain-less-than): A literal &lt; inside an attribute value.
- [An invalid XML character (Unicode: 0x…) was found (Java)](https://xmlvalid.com/errors/invalid-xml-character-was-found): The document contains a control character that XML 1.0 does not allow, even escaped.
- [Open quote is expected for attribute (Java)](https://xmlvalid.com/errors/open-quote-is-expected-for-attribute): An attribute value without quotes.
- [The content of elements must consist of well-formed character data or markup (Java)](https://xmlvalid.com/errors/content-of-elements-must-consist-of-well-formed-character-data): A &lt; in text that does not start a valid tag.
- [Attribute name must be followed by the ' = ' character (Java)](https://xmlvalid.com/errors/attribute-name-must-be-followed-by-the-equals-character): An attribute without a value.
- [The element has invalid child element (.NET)](https://xmlvalid.com/errors/element-has-invalid-child-element): .NET found a child element the schema does not allow at that point: out of order, misspelt, or in another namespace.
- [The element has incomplete content (.NET)](https://xmlvalid.com/errors/element-has-incomplete-content): An element ended before all the children the schema requires appeared.
- [The element cannot contain text (.NET)](https://xmlvalid.com/errors/element-cannot-contain-text): Text appears directly inside an element that may only contain other elements.
- [The attribute is not declared (.NET)](https://xmlvalid.com/errors/attribute-is-not-declared): An element carries an attribute its type in the schema does not declare.
- [The required attribute is missing (.NET)](https://xmlvalid.com/errors/required-attribute-is-missing): A required attribute is missing from an element.
- [The element is not declared (.NET)](https://xmlvalid.com/errors/element-is-not-declared): An element, usually the root, is not declared in the schema for its namespace.
- [The value is invalid according to its datatype (.NET)](https://xmlvalid.com/errors/value-is-invalid-according-to-its-datatype): A value is not in the format of its XML Schema datatype.
- [The Enumeration constraint failed (.NET)](https://xmlvalid.com/errors/enumeration-constraint-failed): A value is not one of the fixed values the schema allows.
- [The Pattern constraint failed (.NET)](https://xmlvalid.com/errors/pattern-constraint-failed): A value does not match the regular expression its type requires.
- [The actual length is greater than the MaxLength value (.NET)](https://xmlvalid.com/errors/actual-length-is-greater-than-the-maxlength-value): A value is longer than its type allows.
- [Data at the root level is invalid (.NET)](https://xmlvalid.com/errors/data-at-the-root-level-is-invalid): The input does not start with markup: it is not XML, or something comes before the root element.
- [The start tag does not match the end tag (.NET)](https://xmlvalid.com/errors/start-tag-does-not-match-the-end-tag): An end tag does not match the start tag it should close.
- [There are multiple root elements (.NET)](https://xmlvalid.com/errors/there-are-multiple-root-elements): More than one element at the top level: an XML document has exactly one root.
- [Unexpected end of file has occurred (.NET)](https://xmlvalid.com/errors/unexpected-end-of-file-has-occurred): The document ends while elements are still open.
- [Root element is missing (.NET)](https://xmlvalid.com/errors/root-element-is-missing): The input has no element at all.
- [Reference to undeclared entity (.NET)](https://xmlvalid.com/errors/reference-to-undeclared-entity): The document uses a named entity, like &amp;nbsp;, that XML does not define.
- [An error occurred while parsing EntityName (.NET)](https://xmlvalid.com/errors/error-occurred-while-parsing-entityname): A bare ampersand (&amp;) in text or in an attribute.
- [Invalid character in the given encoding (.NET)](https://xmlvalid.com/errors/invalid-character-in-the-given-encoding): The bytes are not valid in the encoding the document is read with.
- [Unexpected XML declaration (.NET)](https://xmlvalid.com/errors/unexpected-xml-declaration): An XML declaration (…?) appears somewhere other than the very start.
- [Is an undeclared prefix (.NET)](https://xmlvalid.com/errors/is-an-undeclared-prefix): An element or attribute uses a namespace prefix that no xmlns declaration defines.
- [Is a duplicate attribute name (.NET)](https://xmlvalid.com/errors/is-a-duplicate-attribute-name): The same attribute appears twice on one element.
- ['<', hexadecimal value 0x3C, is an invalid attribute character (.NET)](https://xmlvalid.com/errors/is-an-invalid-attribute-character): A literal &lt; inside an attribute value.
- [Hexadecimal value 0x…, is an invalid character (.NET)](https://xmlvalid.com/errors/hexadecimal-value-is-an-invalid-character): The document contains a control character that XML 1.0 does not allow.
- [Name cannot begin with the character (.NET)](https://xmlvalid.com/errors/name-cannot-begin-with-the-character): A &lt; in text that does not start a valid tag.
- [Is an unexpected token. The expected token is (.NET)](https://xmlvalid.com/errors/is-an-unexpected-token): The parser found a character where XML syntax requires a specific one, most often a quote or an equals sign.
- [Unexpected end of file while parsing Comment has occurred (.NET)](https://xmlvalid.com/errors/unexpected-end-of-file-while-parsing-comment): A comment is never closed, so it runs to the end of the document.

## Free tools

Run in the browser, nothing uploaded ([all of them](https://xmlvalid.com/tools)).

- [XML formatter](https://xmlvalid.com/tools/xml-formatter): Pretty-print or minify XML, keeping text, CDATA and comments as written.
- [XPath tester](https://xmlvalid.com/tools/xpath-tester): Evaluate XPath 3.1 against a document and see each match with its line.
- [XSD generator](https://xmlvalid.com/tools/xsd-generator): Infer an XML Schema from sample documents, checked against them.
- [XML from XSD](https://xmlvalid.com/tools/xsd-to-xml): Generate a sample XML document from a schema, validated against it.
- [XSLT transformer](https://xmlvalid.com/tools/xslt-transformer): Run XSLT 1.0, 2.0 or 3.0 on a document and see the result, the messages and the files it writes.
- [XML diff](https://xmlvalid.com/tools/xml-diff): Compare two XML documents as trees: changed, added and removed elements, attributes and text.
- [XML to JSON converter](https://xmlvalid.com/tools/xml-to-json): Convert XML to JSON, with arrays where an element repeats or wherever its XSD allows.
- [JSON to XML converter](https://xmlvalid.com/tools/json-to-xml): Convert JSON to XML: @keys become attributes, arrays repeated elements.
- [XML to CSV converter](https://xmlvalid.com/tools/xml-to-csv): Turn a repeating element into CSV rows: invoice lines, products, records.
- [E-invoice viewer](https://xmlvalid.com/tools/e-invoice-viewer): Read an XRechnung, ZUGFeRD, Factur-X or Peppol invoice as a document, and save it as a PDF.

## Comparisons

xmlvalid next to other validators, from their public pages ([all of them](https://xmlvalid.com/compare)).

- [xmlvalid vs the ecosio validator](https://xmlvalid.com/compare/ecosio): ecosio's free web form for e-invoices against xmlvalid: countries, privacy, input, API and price.
- [xmlvalid vs the EU Interoperability Test Bed validator](https://xmlvalid.com/compare/eu-itb): The European Commission's free, open-source validators against xmlvalid: rules, hosting, XSD 1.1 and APIs.
- [xmlvalid vs Liquid Technologies' online validators](https://xmlvalid.com/compare/liquid-technologies): The free online validators from the makers of Liquid Studio against xmlvalid: size, schema files and privacy.

## Blog

E-invoicing rule releases and how xmlvalid validates XML ([all posts](https://xmlvalid.com/blog), [Atom feed](https://xmlvalid.com/blog/feed.atom)).

- [Validating a 5 GB XML file in the browser](https://xmlvalid.com/blog/validating-5-gb-xml-in-the-browser) (2026-10-23): libxml2 compiled to WebAssembly, fed from a File one megabyte at a time: a 5 GB document checked against its XSD in 66 seconds, nothing uploaded, memory flat

## Documentation

- [Using the validator](https://xmlvalid.com/docs): opening documents, schemas with includes, Schematron rules, results, limits and privacy.
- [API reference](https://xmlvalid.com/docs/api): the REST API (Pro): validations, schemas, the catalog, results, webhooks, URL monitors.
- [OpenAPI specification](https://xmlvalid.com/docs/api/openapi.yaml): the API as OpenAPI 3.1.
- [Postman collection](https://xmlvalid.com/docs/api/postman.json): every endpoint with example responses.
- [MCP server](https://xmlvalid.com/docs/api#mcp): https://xmlvalid.com/mcp (Streamable HTTP) for AI agents: validate_xml (with an API key), search_schemas, explain_error, explain_rule.
- [SOAP endpoint](https://xmlvalid.com/docs/api#soap): https://xmlvalid.com/api/soap/v1 (SOAP 1.1 and 1.2, [WSDL](https://xmlvalid.com/api/soap/v1?wsdl)): Validate and GetValidation, for .NET, Java and ESB clients.
- [CI and the command line](https://xmlvalid.com/docs/ci): the @xmlvalid/cli client, GitHub Actions, GitLab CI, pre-commit hooks.
- [SDKs](https://xmlvalid.com/docs/sdks): API clients for [PHP](https://xmlvalid.com/docs/sdks/php) (xmlvalid/xmlvalid-php), [Laravel](https://xmlvalid.com/docs/sdks/laravel) (xmlvalid/xmlvalid-laravel), [Symfony](https://xmlvalid.com/docs/sdks/symfony) (xmlvalid/xmlvalid-symfony), [Python](https://xmlvalid.com/docs/sdks/python) (xmlvalid on PyPI) and [JavaScript / TypeScript](https://xmlvalid.com/docs/sdks/javascript) (@xmlvalid/sdk): schemas, Schematron rules, e-invoices, large files, webhooks.
- [Integrations](https://xmlvalid.com/docs/integrations): [n8n](https://xmlvalid.com/docs/integrations/n8n) (community node n8n-nodes-xmlvalid), [Apify](https://xmlvalid.com/docs/integrations/apify) (an Actor, pay per document), [Postman](https://xmlvalid.com/docs/integrations/postman) (the API collection).
- [Pricing](https://xmlvalid.com/pricing): Free and Pro plans.
- [About](https://xmlvalid.com/about): who makes xmlvalid and how it works.

## Optional

- [Full text](https://xmlvalid.com/llms-full.txt): the documentation, the country guides, the schema language guides and the error explanations in one file.
- [Sitemap](https://xmlvalid.com/sitemap.xml): the pages search engines are pointed at.
