AssetBase.xsd 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="uri:ea.com:eala:asset" xmlns:at="uri:ea.com:eala:asset:type" xmlns:xas="uri:ea.com:eala:asset:schema" targetNamespace="uri:ea.com:eala:asset" elementFormDefault="qualified" xmlns:XmlEdit="http://tempuri.org/XmlEdit.xsd">
  3. <xs:complexType name="BaseAssetType">
  4. <xs:annotation>
  5. <xs:documentation>Base type for all assets</xs:documentation>
  6. </xs:annotation>
  7. <xs:sequence>
  8. </xs:sequence>
  9. <xs:attribute name="id" type="InstanceId" use="required" XmlEdit:Default="UnnamedAsset" />
  10. <xs:attribute name="typeHashCode" type="HashCode" use="optional" XmlEdit:Default="00000000" />
  11. <xs:attribute name="buildRule" type="BuildRule" />
  12. </xs:complexType>
  13. <xs:complexType name="BaseInheritableAsset">
  14. <xs:complexContent>
  15. <xs:extension base="BaseAssetType">
  16. <xs:annotation>
  17. <xs:documentation>Inheritable base type for all assets</xs:documentation>
  18. </xs:annotation>
  19. <xs:sequence>
  20. </xs:sequence>
  21. <xs:attribute name="inheritFrom">
  22. <xs:simpleType>
  23. <xs:restriction base="xs:string">
  24. <xs:pattern value="([0-9a-zA-Z_.-]*:)?[0-9a-zA-Z_.-]*" />
  25. </xs:restriction>
  26. </xs:simpleType>
  27. </xs:attribute>
  28. </xs:extension>
  29. </xs:complexContent>
  30. </xs:complexType>
  31. <xs:simpleType name="HashCode">
  32. <xs:annotation>
  33. <xs:documentation>Type to represent 8 digit hexadecimal values</xs:documentation>
  34. </xs:annotation>
  35. <xs:restriction base="xs:string">
  36. <xs:length value="8" fixed="true" />
  37. <xs:pattern value="[0-9a-fA-F]{8}" />
  38. </xs:restriction>
  39. </xs:simpleType>
  40. <xs:simpleType name="InstanceId">
  41. <xs:annotation>
  42. <xs:documentation>Type for instance names</xs:documentation>
  43. </xs:annotation>
  44. <xs:restriction base="xs:string">
  45. <xs:pattern value="[0-9a-zA-Z_.-]+" />
  46. </xs:restriction>
  47. </xs:simpleType>
  48. <xs:simpleType name="BuildRule">
  49. <xs:annotation>
  50. <xs:documentation>Type for build rules</xs:documentation>
  51. </xs:annotation>
  52. <xs:restriction base="xs:string" />
  53. </xs:simpleType>
  54. <xs:simpleType name="AssetReference" xas:isRef="true">
  55. <xs:annotation>
  56. <xs:documentation>Type for internal references to other declared assets</xs:documentation>
  57. </xs:annotation>
  58. <xs:restriction base="xs:string">
  59. <!-- The \number at the end isn't ACTUALLY legal, but BAB outputs this for indexing purposes -->
  60. <!-- If anyone actually TRIES to use this, the regex will fail because BAB will also add its own -->
  61. <xs:pattern value="([0-9a-zA-Z_.-]*:)?[0-9a-zA-Z_.-]*(\\[0-9]+)?" />
  62. </xs:restriction>
  63. </xs:simpleType>
  64. <xs:simpleType name="WeakReference" xas:isWeakRef="true">
  65. <xs:annotation>
  66. <xs:documentation>Type for internal references to other declared assets that need to be post-fixed due to ciruclar dependencies</xs:documentation>
  67. </xs:annotation>
  68. <xs:restriction base="xs:string">
  69. <xs:pattern value="[0-9a-zA-Z_.-]*" />
  70. </xs:restriction>
  71. </xs:simpleType>
  72. <xs:simpleType name="Poid" xas:isWeakRef="true">
  73. <xs:annotation>
  74. <xs:documentation>"Pipeline Object Id", can be used as an identifier for any complexType in the pipeline</xs:documentation>
  75. </xs:annotation>
  76. <xs:restriction base="xs:string">
  77. <xs:pattern value="[0-9a-zA-Z/_.%@#$^\(\) \-\?&amp;&quot;&lt;&gt;\+\!]+" />
  78. </xs:restriction>
  79. </xs:simpleType>
  80. <xs:simpleType name="FileReference">
  81. <xs:annotation>
  82. <xs:documentation>Type for external references to stand-alone files</xs:documentation>
  83. </xs:annotation>
  84. <xs:restriction base="xs:anyURI" />
  85. </xs:simpleType>
  86. <xs:simpleType name="DataBlob">
  87. <xs:annotation>
  88. <xs:documentation>Pulls in data from external references to stand-alone files,</xs:documentation>
  89. </xs:annotation>
  90. <xs:restriction base="FileReference" />
  91. </xs:simpleType>
  92. <xs:complexType name="Include">
  93. <xs:sequence>
  94. </xs:sequence>
  95. <xs:attribute name="type" type="IncludeType" use="required" />
  96. <xs:attribute name="source" type="xs:anyURI" use="required" />
  97. </xs:complexType>
  98. <xs:simpleType name="IncludeType">
  99. <xs:restriction base="xs:string">
  100. <xs:enumeration value="reference" />
  101. <xs:enumeration value="instance" />
  102. <xs:enumeration value="all" />
  103. </xs:restriction>
  104. </xs:simpleType>
  105. <xs:complexType name="Tag">
  106. <xs:sequence>
  107. </xs:sequence>
  108. <xs:attribute name="name" type="xs:string" use="required" />
  109. <xs:attribute name="tag" type="xs:string" use="required" />
  110. </xs:complexType>
  111. <xs:complexType name="Define">
  112. <xs:attribute name="name" type="xs:string" use="required" />
  113. <xs:attribute name="value" type="xs:string" use="required" />
  114. <xs:attribute name="override" type="xs:boolean" />
  115. </xs:complexType>
  116. </xs:schema>