map.xsd 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. /**
  4. * Copyright © Magento, Inc. All rights reserved.
  5. * See COPYING.txt for license details.
  6. */
  7. -->
  8. <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  9. <xs:element name="map" type="mapType" />
  10. <xs:complexType name="mapType">
  11. <xs:all>
  12. <xs:element name="source" type="sourceRulesType" maxOccurs="1" minOccurs="1" />
  13. <xs:element name="destination" type="destinationRulesType" maxOccurs="1" minOccurs="1" />
  14. </xs:all>
  15. </xs:complexType>
  16. <xs:complexType name="sourceRulesType">
  17. <xs:sequence>
  18. <xs:element name="document_rules" type="sourceDocumentRulesType" maxOccurs="unbounded" minOccurs="0" />
  19. <xs:element name="field_rules" type="sourceFieldRulesType" maxOccurs="unbounded" minOccurs="0" />
  20. </xs:sequence>
  21. </xs:complexType>
  22. <xs:complexType name="destinationRulesType">
  23. <xs:sequence>
  24. <xs:element name="document_rules" type="destinationDocumentRulesType" maxOccurs="unbounded" minOccurs="0" />
  25. <xs:element name="field_rules" type="destinationFieldRulesType" maxOccurs="unbounded" minOccurs="0" />
  26. </xs:sequence>
  27. </xs:complexType>
  28. <xs:complexType name="sourceDocumentRulesType">
  29. <xs:choice minOccurs="1" maxOccurs="unbounded">
  30. <xs:element name="rename" type="renameDocumentType" maxOccurs="unbounded" minOccurs="0" />
  31. <xs:element name="ignore" type="ignoreDocumentType" maxOccurs="unbounded" minOccurs="0" />
  32. </xs:choice>
  33. </xs:complexType>
  34. <xs:complexType name="destinationDocumentRulesType">
  35. <xs:choice minOccurs="1" maxOccurs="unbounded">
  36. <xs:element name="ignore" type="ignoreDocumentType" maxOccurs="unbounded" minOccurs="0" />
  37. </xs:choice>
  38. </xs:complexType>
  39. <xs:complexType name="ignoreDocumentType">
  40. <xs:sequence>
  41. <xs:element name="document" type="notEmptyString" />
  42. </xs:sequence>
  43. </xs:complexType>
  44. <xs:complexType name="renameDocumentType">
  45. <xs:sequence>
  46. <xs:element name="document" type="notEmptyString" />
  47. <xs:element name="to" type="notEmptyString" />
  48. </xs:sequence>
  49. </xs:complexType>
  50. <xs:complexType name="sourceFieldRulesType">
  51. <xs:choice minOccurs="1" maxOccurs="unbounded">
  52. <xs:element name="ignore" type="ignoreFieldType" minOccurs="0" maxOccurs="unbounded" />
  53. <xs:element name="move" type="moveFieldType" minOccurs="0" maxOccurs="unbounded" />
  54. <xs:element name="transform" type="transformFieldType" minOccurs="0" maxOccurs="unbounded" />
  55. </xs:choice>
  56. </xs:complexType>
  57. <xs:complexType name="destinationFieldRulesType">
  58. <xs:choice minOccurs="1" maxOccurs="unbounded">
  59. <xs:element name="ignore" type="ignoreFieldType" minOccurs="0" maxOccurs="unbounded" />
  60. <xs:element name="transform" type="transformFieldType" minOccurs="0" maxOccurs="unbounded" />
  61. </xs:choice>
  62. </xs:complexType>
  63. <xs:complexType name="ignoreFieldType">
  64. <xs:choice minOccurs="1" maxOccurs="1">
  65. <xs:element name="field" type="fieldFormatType" minOccurs="1" maxOccurs="1" />
  66. <xs:element name="datatype" type="fieldFormatType" minOccurs="1" maxOccurs="1" />
  67. </xs:choice>
  68. </xs:complexType>
  69. <xs:complexType name="moveFieldType">
  70. <xs:sequence>
  71. <xs:element name="field" type="fieldFormatType" />
  72. <xs:element name="to" type="fieldFormatType" />
  73. </xs:sequence>
  74. </xs:complexType>
  75. <xs:complexType name="transformFieldType">
  76. <xs:sequence>
  77. <xs:element name="field" type="fieldFormatType" />
  78. <xs:element name="handler" type="handlerType">
  79. <xs:unique name="uniqueParamName">
  80. <xs:selector xpath="param" />
  81. <xs:field xpath="@name" />
  82. </xs:unique>
  83. </xs:element>
  84. </xs:sequence>
  85. </xs:complexType>
  86. <xs:complexType name="handlerType">
  87. <xs:sequence>
  88. <xs:element name="param" type="handlerParamType" maxOccurs="unbounded" minOccurs="0" />
  89. </xs:sequence>
  90. <xs:attribute name="class" use="required">
  91. <xs:simpleType>
  92. <xs:restriction base="xs:string">
  93. <xs:pattern value="[0-9a-zA-Z_\\\\]+" />
  94. </xs:restriction>
  95. </xs:simpleType>
  96. </xs:attribute>
  97. </xs:complexType>
  98. <xs:complexType name="handlerParamType">
  99. <xs:attribute name="name" type="xs:string" use="required" />
  100. <xs:attribute name="value" type="xs:string" use="required" />
  101. </xs:complexType>
  102. <xs:simpleType name="fieldFormatType">
  103. <xs:annotation>
  104. <xs:documentation>Field format: "document_name.field_name"</xs:documentation>
  105. </xs:annotation>
  106. <xs:restriction base="xs:string">
  107. <xs:pattern value="[^.]+\.[^.]+" />
  108. </xs:restriction>
  109. </xs:simpleType>
  110. <xs:simpleType name="notEmptyString">
  111. <xs:restriction base="xs:string">
  112. <xs:minLength value="1" />
  113. </xs:restriction>
  114. </xs:simpleType>
  115. </xs:schema>