123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- /**
- * Schema for DI configuration
- *
- * Copyright © Magento, Inc. All rights reserved.
- * See COPYING.txt for license details.
- */
- -->
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <xs:redefine schemaLocation="urn:magento:framework:Data/etc/argument/types.xsd">
- <xs:complexType name="string">
- <xs:complexContent>
- <xs:extension base="argumentType">
- <xs:attribute name="translatable" use="optional" type="xs:boolean" />
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="argumentType" abstract="true" mixed="false">
- <xs:complexContent>
- <xs:extension base="argumentType" />
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="object">
- <xs:complexContent>
- <xs:extension base="object">
- <xs:attribute name="shared" use="optional" type="xs:boolean"/>
- <xs:attribute name="sortOrder" use="optional" type="xs:integer"/>
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- </xs:redefine>
- <xs:simpleType name="phpClassName">
- <xs:annotation>
- <xs:documentation>
- A string that matches a Fully Qualified Class Name from PHP, especially not starting
- with a backslash as this is an invalid character to start a class name with but a
- somewhat common mistake so this simple type can be used to validate against it
- already
- </xs:documentation>
- </xs:annotation>
- <xs:restriction base="xs:string">
- <xs:pattern value="(\\?[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*)(\\[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*)*"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="init_parameter">
- <xs:complexContent>
- <xs:extension base="argumentType" />
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="const">
- <xs:complexContent>
- <xs:extension base="argumentType" />
- </xs:complexContent>
- </xs:complexType>
- <xs:element name="config">
- <xs:complexType>
- <xs:choice maxOccurs="unbounded">
- <xs:element name="preference" type="preferenceType" minOccurs="0" maxOccurs="unbounded" />
- <xs:element name="type" type="typeType" minOccurs="0" maxOccurs="unbounded">
- <xs:unique name="uniqueTypeParam">
- <xs:annotation>
- <xs:documentation>
- Param name should be unique in scope of type
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="param" />
- <xs:field xpath="@name" />
- </xs:unique>
- </xs:element>
- <xs:element name="virtualType" type="virtualTypeType" minOccurs="0" maxOccurs="unbounded">
- <xs:unique name="uniqueVirtualTypeParam">
- <xs:annotation>
- <xs:documentation>
- Param name should be unique in scope of virtual type
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="param" />
- <xs:field xpath="@name" />
- </xs:unique>
- </xs:element>
- </xs:choice>
- </xs:complexType>
- <xs:unique name="uniquePreference">
- <xs:annotation>
- <xs:documentation>
- Preference for each class should be unique in scope of file
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="preference" />
- <xs:field xpath="@for" />
- </xs:unique>
- <xs:unique name="uniqueType">
- <xs:annotation>
- <xs:documentation>
- Type name should be unique in scope of file
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="type" />
- <xs:field xpath="@name" />
- </xs:unique>
- <xs:unique name="uniqueVirtualType">
- <xs:annotation>
- <xs:documentation>
- Virtual type name should be unique in scope of file
- </xs:documentation>
- </xs:annotation>
- <xs:selector xpath="virtualType" />
- <xs:field xpath="@name" />
- </xs:unique>
- </xs:element>
- <xs:complexType name="preferenceType">
- <xs:annotation>
- <xs:documentation>
- Preference help Object Manager to choose class for corresponding interface
- </xs:documentation>
- </xs:annotation>
- <xs:attribute name="for" type="phpClassName" use="required"/>
- <xs:attribute name="type" type="phpClassName" use="required" />
- </xs:complexType>
- <xs:complexType name="typeType">
- <xs:annotation>
- <xs:documentation>
- With 'type' tag you can point parameters and plugins for certain class
- </xs:documentation>
- </xs:annotation>
- <xs:choice maxOccurs="unbounded">
- <xs:element name="arguments" type="argumentsType" minOccurs="0" maxOccurs="1">
- <xs:key name="argumentName">
- <xs:selector xpath="argument"></xs:selector>
- <xs:field xpath="@name"></xs:field>
- </xs:key>
- </xs:element>
- <xs:element name="plugin" type="pluginType" minOccurs="0" maxOccurs="unbounded" />
- </xs:choice>
- <xs:attribute name="name" type="phpClassName" use="required" />
- <xs:attribute name="shared" type="xs:boolean" use="optional" />
- </xs:complexType>
- <xs:complexType name="virtualTypeType">
- <xs:complexContent>
- <xs:extension base="typeType">
- <xs:annotation>
- <xs:documentation>
- With 'virtualType' tag you can point parameters and plugins for autogenerated class
- </xs:documentation>
- </xs:annotation>
- <xs:attribute name="type" type="phpClassName" use="optional" />
- </xs:extension>
- </xs:complexContent>
- </xs:complexType>
- <xs:complexType name="pluginType">
- <xs:attribute name="name" type="xs:string" use="required" />
- <xs:attribute name="type" type="phpClassName" use="optional" />
- <xs:attribute name="disabled" type="xs:boolean" use="optional" />
- <xs:attribute name="sortOrder" type="xs:int" use="optional" />
- </xs:complexType>
- </xs:schema>
|