data_source.xsd 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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 xmlns:xs="http://www.w3.org/2001/XMLSchema">
  9. <xs:element name="config">
  10. <xs:complexType>
  11. <xs:sequence>
  12. <xs:element ref="dataSource" minOccurs="1" maxOccurs="unbounded"/>
  13. </xs:sequence>
  14. </xs:complexType>
  15. </xs:element>
  16. <!-- -->
  17. <xs:element name="dataSource">
  18. <xs:complexType>
  19. <xs:sequence>
  20. <xs:element ref="fields" minOccurs="0" maxOccurs="1"/>
  21. <xs:element ref="references" minOccurs="0" maxOccurs="1"/>
  22. </xs:sequence>
  23. <xs:attribute type="referenceAttributeType" name="name" use="required"/>
  24. <xs:attribute type="textAttributeType" name="label" use="required"/>
  25. <xs:attribute type="xs:string" name="dataSet" use="required"/>
  26. </xs:complexType>
  27. </xs:element>
  28. <!-- -->
  29. <xs:element name="fields">
  30. <xs:complexType>
  31. <xs:sequence>
  32. <xs:element ref="field" maxOccurs="unbounded" minOccurs="0"/>
  33. </xs:sequence>
  34. <xs:attribute type="referenceAttributeType" name="entityType" use="optional"/>
  35. </xs:complexType>
  36. </xs:element>
  37. <!-- -->
  38. <xs:element name="field">
  39. <xs:complexType>
  40. <xs:choice maxOccurs="unbounded">
  41. <xs:element type="fieldReferenceType" name="reference" maxOccurs="1" minOccurs="0"/>
  42. <xs:element type="fieldConstraintsType" name="constraints" maxOccurs="unbounded" minOccurs="0"/>
  43. <xs:element type="fieldTooltipType" name="tooltip" maxOccurs="unbounded" minOccurs="0"/>
  44. </xs:choice>
  45. <xs:attribute type="referenceAttributeType" name="name" use="required"/>
  46. <xs:attribute type="textAttributeType" name="dataType" use="optional"/>
  47. <xs:attribute type="textAttributeType" name="formElement" use="optional"/>
  48. <xs:attribute type="textAttributeType" name="componentType" use="optional"/>
  49. <xs:attribute type="textAttributeType" name="displayArea" use="optional"/>
  50. <xs:attribute type="textAttributeType" name="fieldGroup" use="optional"/>
  51. <xs:attribute type="textAttributeType" name="source" use="optional"/>
  52. <xs:attribute type="textAttributeType" name="optionProvider" use="optional"/>
  53. <xs:attribute type="textAttributeType" name="default_value" use="optional"/>
  54. <xs:attribute type="textAttributeType" name="label" use="optional"/>
  55. <xs:attribute type="textAttributeType" name="description" use="optional"/>
  56. <xs:attribute type="textAttributeType" name="uniqueNs" use="optional"/>
  57. <xs:attribute type="textAttributeType" name="uniqueProp" use="optional"/>
  58. <xs:attribute type="xs:integer" name="size" use="optional"/>
  59. <xs:attribute type="xs:string" name="customEntry" use="optional"/>
  60. <xs:attribute type="xs:boolean" name="visible" use="optional"/>
  61. </xs:complexType>
  62. </xs:element>
  63. <!-- -->
  64. <xs:element name="references">
  65. <xs:complexType>
  66. <xs:sequence>
  67. <xs:element type="reference" name="reference" maxOccurs="unbounded" minOccurs="1"/>
  68. </xs:sequence>
  69. </xs:complexType>
  70. </xs:element>
  71. <!-- -->
  72. <xs:complexType name="reference">
  73. <xs:simpleContent>
  74. <xs:extension base="xs:string">
  75. <xs:attribute type="referenceAttributeType" name="target" use="required"/>
  76. <xs:attribute type="referenceAttributeType" name="referencedField" use="required"/>
  77. <xs:attribute type="referenceAttributeType" name="targetField" use="required"/>
  78. </xs:extension>
  79. </xs:simpleContent>
  80. </xs:complexType>
  81. <!-- -->
  82. <xs:complexType name="fieldReferenceType">
  83. <xs:simpleContent>
  84. <xs:extension base="xs:string">
  85. <xs:attribute type="referenceAttributeType" name="target" use="required"/>
  86. <xs:attribute type="referenceAttributeType" name="referencedField" use="required"/>
  87. <xs:attribute type="referenceAttributeType" name="targetField" use="required"/>
  88. <xs:attribute type="referenceAttributeType" name="neededField" use="required"/>
  89. </xs:extension>
  90. </xs:simpleContent>
  91. </xs:complexType>
  92. <!-- -->
  93. <xs:complexType name="fieldConstraintsType">
  94. <xs:choice maxOccurs="unbounded">
  95. <xs:element type="constraintValidateType" name="validate" maxOccurs="unbounded" minOccurs="0"/>
  96. <xs:element type="constraintFilterType" name="filter" maxOccurs="unbounded" minOccurs="0"/>
  97. <xs:element type="constraintReadonlyType" name="readonly" maxOccurs="unbounded" minOccurs="0"/>
  98. </xs:choice>
  99. </xs:complexType>
  100. <xs:complexType name="constraintValidateType">
  101. <xs:simpleContent>
  102. <xs:extension base="xs:string">
  103. <xs:attribute type="xs:string" name="name" use="required"/>
  104. <xs:attribute type="xs:string" name="value" use="optional"/>
  105. </xs:extension>
  106. </xs:simpleContent>
  107. </xs:complexType>
  108. <xs:complexType name="constraintFilterType">
  109. <xs:simpleContent>
  110. <xs:extension base="xs:string">
  111. <xs:attribute type="xs:string" name="on" use="required"/>
  112. <xs:attribute type="xs:string" name="by" use="required"/>
  113. <xs:attribute type="xs:string" name="value" use="optional"/>
  114. </xs:extension>
  115. </xs:simpleContent>
  116. </xs:complexType>
  117. <xs:complexType name="constraintReadonlyType">
  118. <xs:simpleContent>
  119. <xs:extension base="xs:string">
  120. <xs:attribute type="xs:string" name="on" use="required"/>
  121. <xs:attribute type="xs:string" name="value" use="optional"/>
  122. </xs:extension>
  123. </xs:simpleContent>
  124. </xs:complexType>
  125. <!-- -->
  126. <xs:complexType name="fieldTooltipType">
  127. <xs:sequence>
  128. <xs:element type="xs:string" name="link" maxOccurs="1" minOccurs="1"/>
  129. <xs:element type="xs:string" name="description" maxOccurs="1" minOccurs="1"/>
  130. </xs:sequence>
  131. </xs:complexType>
  132. <!-- -->
  133. <xs:simpleType name="textAttributeType">
  134. <xs:annotation>
  135. <xs:documentation>Any text value</xs:documentation>
  136. </xs:annotation>
  137. <xs:restriction base="xs:string">
  138. <xs:pattern value="[A-Za-z0-9,_.\\: -]+" />
  139. </xs:restriction>
  140. </xs:simpleType>
  141. <!-- -->
  142. <xs:simpleType name="referenceAttributeType">
  143. <xs:annotation>
  144. <xs:documentation>The value should only be {[a-z_-]+} since it is used as a reference to a database field.</xs:documentation>
  145. </xs:annotation>
  146. <xs:restriction base="xs:string">
  147. <xs:pattern value="[a-z_-]+" />
  148. </xs:restriction>
  149. </xs:simpleType>
  150. </xs:schema>