CmdTool.xsd 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3. <xs:element name="CmdTool" nillable="true" type="CmdToolConfig" />
  4. <xs:complexType name="CmdToolConfig">
  5. <xs:sequence>
  6. <xs:element minOccurs="0" maxOccurs="unbounded" name="match" type="FileMatch" />
  7. </xs:sequence>
  8. </xs:complexType>
  9. <xs:complexType name="FileMatch">
  10. <xs:sequence>
  11. <xs:element minOccurs="0" maxOccurs="unbounded" name="applies-to" type="MatchAppliesTo" />
  12. <xs:element minOccurs="1" maxOccurs="unbounded" name="generator" type="GeneratorConfig" />
  13. </xs:sequence>
  14. <xs:attribute name="filespec" type="FileMatchPattern" use="required" />
  15. </xs:complexType>
  16. <xs:complexType name="MatchAppliesTo">
  17. <xs:attribute name="folder" type="FilePathPattern" use="required"/>
  18. </xs:complexType>
  19. <xs:complexType name="GeneratorConfig">
  20. <xs:sequence>
  21. <xs:choice minOccurs="1" maxOccurs="1">
  22. <xs:element minOccurs="1" maxOccurs="1" name="script" type="GeneratorScript" />
  23. <xs:element minOccurs="1" maxOccurs="1" name="execute" type="GeneratorExec" />
  24. </xs:choice>
  25. <xs:element minOccurs="0" maxOccurs="unbounded" name="arg" type="GeneratorArgument" />
  26. <xs:element minOccurs="0" maxOccurs="1" name="std-input" type="GeneratorInput" />
  27. <xs:element minOccurs="0" maxOccurs="1" name="std-output" type="GeneratorOutput" />
  28. <xs:element minOccurs="0" maxOccurs="unbounded" name="output" type="GeneratorOutput" />
  29. </xs:sequence>
  30. <xs:attribute name="debug" type="xs:boolean" default="false" use="optional" />
  31. </xs:complexType>
  32. <xs:complexType name="GeneratorScript">
  33. <xs:simpleContent>
  34. <xs:extension base="xs:string">
  35. <xs:attribute name="type" type="GeneratorScriptType" use="required"/>
  36. <xs:attribute name="src" type="FilePathPattern" use="optional"/>
  37. </xs:extension>
  38. </xs:simpleContent>
  39. </xs:complexType>
  40. <xs:complexType name="GeneratorExec">
  41. <xs:simpleContent>
  42. <xs:extension base="xs:string">
  43. <xs:attribute name="exe" type="FilePathPattern" use="required"/>
  44. </xs:extension>
  45. </xs:simpleContent>
  46. </xs:complexType>
  47. <xs:complexType name="GeneratorArgument">
  48. <xs:attribute name="value" type="xs:string" use="required" />
  49. </xs:complexType>
  50. <xs:complexType name="GeneratorInput">
  51. <xs:attribute name="redirect" type="xs:boolean" use="required" />
  52. </xs:complexType>
  53. <xs:complexType name="GeneratorOutput">
  54. <xs:attribute name="extension" type="xs:string" use="required" />
  55. </xs:complexType>
  56. <xs:simpleType name="FilePathPattern">
  57. <xs:restriction base="xs:string">
  58. <xs:pattern value="^[^*?&quot;|&lt;&gt;]+$" />
  59. </xs:restriction>
  60. </xs:simpleType>
  61. <xs:simpleType name="FileMatchPattern">
  62. <xs:restriction base="xs:string">
  63. <xs:pattern value="^[^\\/:&quot;|&lt;&gt;]+$" />
  64. </xs:restriction>
  65. </xs:simpleType>
  66. <xs:simpleType name="FileExtensionPattern">
  67. <xs:restriction base="xs:string">
  68. <xs:pattern value="^.[^\\/:*?&quot;|&lt;&gt;]*$" />
  69. </xs:restriction>
  70. </xs:simpleType>
  71. <xs:simpleType name="GeneratorScriptType">
  72. <xs:restriction base="xs:string">
  73. <xs:enumeration value="JScript"/>
  74. <xs:enumeration value="VBScript"/>
  75. <xs:enumeration value="Cmd"/>
  76. <xs:enumeration value="PowerShell"/>
  77. <xs:enumeration value="CSharp"/>
  78. <xs:enumeration value="VBNet"/>
  79. </xs:restriction>
  80. </xs:simpleType>
  81. </xs:schema>