Skip to content

Latest commit

 

History

History
78 lines (50 loc) · 2.59 KB

XSD-XML-validation.md

File metadata and controls

78 lines (50 loc) · 2.59 KB
layout group subgroup title menu_title menu_order version github_link redirect_from
default
extension-dev-guide
03_Build
URN schema validation
URN schema validation
5000
2.0
extension-dev-guide/build/XSD-XML-validation.md
/guides/v2.0/extension-dev-guide/XSD-XML-validation.html

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

You cannot change the XSD for any XML files provided with the Magento application.

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 identifier
  • module is the reference type identifier
  • Magento_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’s 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 identifier
  • framework is the reference type identifier. You can also add additional framework libraries as separate components with framework-<sub-name>
  • Api/etc/extension_attributes.xsd is the relative path to the framework’s directory.

Referencing a XSD from another XSD

Use URN notation to reference schema from inside a XSD document:

{% highlight XML %}

<xs:redefine schemaLocation="urn:magento:framework:Config/etc/view.xsd">

{% endhighlight %}

The URN resolution is invoked automatically by the libxml engine. Register the URN resolver by using libxml_set_external_entity_loader:

{% highlight XML %} libxml_set_external_entity_loader(['Magento\Framework\Config\Dom\UrnResolver', 'registerEntityLoader']); {% endhighlight %}

The relative path to other XSDs cannot be used from inside the XSD file, because the entity loader fails to resolve the relative path.

Next

Name your component