mihas2 / xml_validator
A simple PHP XML validator for large XML files
Installs: 100
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/mihas2/xml_validator
Requires
- php: >=8.1
- ext-intl: *
- ext-libxml: >=2.9.0
Requires (Dev)
- phpunit/phpunit: ^11.0
This package is auto-updated.
Last update: 2025-12-07 23:37:11 UTC
README
A simple PHP XML validator for validate large XML files.
Installation
To install this library, use Composer:
composer require mihas2/xml_validator
Usage
Here's an example of how to use the XML validator:
use mihas2\XmlValidator\XmlValidator; $xmlFile = 'path/to/your/xml/file.xml'; $xmlFileValidator = new XmlValidator($xmlFile); if ($xmlFileValidator->validate()) { echo "XML file is valid."; } else { foreach ($xmlFileValidator->getErrors() as $error) { printf("Line: %d, Column: %d, Message: %s\n", $error->lineNumber, $error->columnNumber, $error->message); } }
use mihas2\XmlValidator\XmlValidator; $xmlUrl = 'https://www.yourdomain.com/validateme.xml'; $xmlUrlValidator = new XmlValidator($xmlUrl); if ($xmlUrlValidator->validate()) { echo "XML file is valid."; } else { foreach ($xmlUrlValidator->getErrors() as $error) { printf("Line: %d, Column: %d, Message: %s\n", $error->lineNumber, $error->columnNumber, $error->message); } }
Configuration
You can configure the XML validator with these options:
$xmlFile(required): The path to your XML file.$verifyPeer(optional, defaultfalse): Set to true to verify the SSL/TLS certificate of the remote schema location.$verifyPeerName(optional, defaultfalse): Set to true to verify that the hostname matches the certificate's subject.$maxDepth(optional, default10000): The maximum depth for XML elements during validation.$xmlFlags(optional, defaultLIBXML_BIGLINES | LIBXML_PARSEHUGE): Additional flags to configure the libxml library's behavior.
Testing
To run tests, execute this command:
composer test
Not implemented yet
Contributing
We welcome contributions! Please submit a pull request with your proposed changes and describe what they do in detail.
License
This project is licensed under the MIT License - see the LICENSE file for details.