URN schema validation
Each Magento module can contain XSD files for XML validation.
Magento uses Uniform Resource Names (URNs) to reference XML Schema declarations.
Magento supported URNs begin with urn:magento
. Magento supports two XSD reference types:
- Module XSD
- Framework XSD
Module XSD
The syntax for the module XSD is a colon separated declaration. An example follows:
urn:magento:module:Magento_Flow:flows/content.xsd
where
urn:magento
is the URN identifiermodule
is the reference type identifierMagento_Flow
is the name of the module. This must be exactly the same as the module specified by ComponentRegistrar in the registration.php file.flows/content.xsd
is the relative path to the module鈥檚 directory.
Framework XSD
The syntax for the framework XSD is a colon separated declaration. An example follows:
`urn:magento:framework:Api/etc/extension_attributes.xsd where
urn:magento
is the URN identifierframework
is the reference type identifier. You can also add additional framework libraries as separate components withframework-<sub-name>
Api/etc/extension_attributes.xsd
is the relative path to the framework鈥檚 directory.
Referencing a XSD from another XSD
Use URN notation to reference schema from inside a XSD document:
<xs:redefine schemaLocation="urn:magento:framework:Config/etc/view.xsd">
The URN resolution is invoked automatically by the libxml engine. Register the URN resolver by using libxml_set_external_entity_loader
:
libxml_set_external_entity_loader(['Magento\Framework\Config\Dom\UrnResolver', 'registerEntityLoader']);
The relative path to other XSDs cannot be used from inside the XSD file, because the entity loader fails to resolve the relative path.
Find us on