bitandblack / idml-validator
Validates IDML files by the official schema from Adobe.
Fund package maintenance!
Buymeacoffee
Requires
- php: >=7.4
- ext-dom: *
- ext-libxml: *
- ext-zip: *
- bitandblack/composer-helper: ^0.4 || ^1.0
- bitandblack/pathinfo: ^1.0
- bitandblack/unzip: ^0
- psr/log: ^1.0 || ^2.0 || ^3.0
- symfony/console: ^5.0 || ^6.0 || ^7.0
- symfony/string: ^5.0 || ^6.0 || ^7.0
Requires (Dev)
- monolog/monolog: ^2.0
- phpstan/phpstan: ^1.0
- phpunit/phpunit: ^10.0
- rector/rector: ^0
- symplify/easy-coding-standard: ^12.0
Suggests
- bitandblack/idml-creator: The full version of the IDML-Creator. This library can be used with Private Packagist.
- bitandblack/idml-creator-demo: Creates IDML content natively. This is a demo library.
- bitandblack/idml-writer: Writes IDML files.
This package is auto-updated.
Last update: 2024-11-19 12:19:05 UTC
README
IDML Validator
Validates IDML files by the official schema from Adobe.
Installation
This library is made for the use with Composer. Add it to your project by running $ composer require bitandblack/idml-validator
.
Usage
The IDML Validator is mainly meant to be used by CLI. Nevertheless it can also be integrated in a PHP project.
Execute a validation via CLI
Run $ php vendor/bin/idml-validator validate /path/to/file.idml
to validate your IDML file.
This will print something like:
Found 3 errors:
┌──────┬───────────────────────── designmap.xml ────────────────────────────────┐
│ Line │ Message │
├──────┼────────────────────────────────────────────────────────────────────────┤
│ 3 │ Element 'Document', attribute 'DOMVersion': [facet 'enumeration'] The │
│ │ value '14.0' is not an element of the set {'8.0'}. │
├──────┼────────────────────────────────────────────────────────────────────────┤
│ 3 │ Element 'Document', attribute 'DOMVersion': '14.0' is not a valid valu │
│ │ e of the local atomic type. │
├──────┼────────────────────────────────────────────────────────────────────────┤
│ 23 │ Element 'EndnoteOption': This element is not expected. Expected is one │
│ │ of ( TextVariable, {http://ns.adobe.com/AdobeInDesign/idml/1.0/packagi │
│ │ ng}Tags, Layer, {http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging} │
│ │ MasterSpread, {http://ns.adobe.com/AdobeInDesign/idml/1.0/packaging}Sp │
│ │ read, Section, DocumentUser, CrossReferenceFormat, Index, {http://ns.a │
│ │ dobe.com/AdobeInDesign/idml/1.0/packaging}BackingStory ). │
└──────┴────────────────────────────────────────────────────────────────────────┘
Custom
For an integrated use of the validator, take the Validation
class, give it a file and a schema:
<?php
use IDML\Validator\File;
use IDML\Validator\Schema;
use IDML\Validator\Validation;
$validation = new Validation(
new File('/path/to/file.idml'),
new Schema()
);
$validation->validate();
$errors = $validation->getErrors();
One problem
A huge problem is that Adobe hasn't updated the schema since InDesign CS6. So every newer function will end in an error, even when it's official possible. We're talking to Adobe and waiting for an answer at the moment. So be careful about the errors and don't mind when you believe a function is possible but throws an error.
Help
If you have any questions feel free to contact us under hello@bitandblack.com
.
Further information about Bit&Black can be found under www.bitandblack.com.