-
Notifications
You must be signed in to change notification settings - Fork 9
/
plugin-metadata.xsd
77 lines (70 loc) · 3.69 KB
/
plugin-metadata.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.mirthcorp.com/mirthconnect/plugins" targetNamespace="http://www.mirthcorp.com/mirthconnect/plugins" elementFormDefault="qualified">
<xs:annotation>
<xs:documentation>
This is an attempt at building an SML schema for Mirth Connect plugin.xml
files. It is not canonical. It may be incomplete. It may be wildly incorrect.
</xs:documentation>
</xs:annotation>
<xs:element name="pluginMetaData" type="pluginMetaDataType" />
<xs:complexType name="pluginMetaDataType">
<xs:sequence>
<xs:element name="name" type="xs:string" /><!-- The name of the plug-in -->
<xs:element name="author" type="xs:string" /><!-- The author of the plug-in -->
<xs:element name="pluginVersion" type="xs:string" /><!-- The version of the plug-in -->
<xs:element name="mirthVersion" type="versionType" /><!-- The Mirth version(s) for which the plug-in is valid -->
<xs:element name="url" type="xs:anyURI" /><!-- The URL for the plug-in -->
<xs:element name="description" type="xs:string" /><!-- A description of the plug-in -->
<xs:element name="clientClasses" type="classesType" minOccurs="0" /><!-- List of (main?) classes that must be loaded into the MC Admin client -->
<xs:element name="serverClasses" type="classesType" minOccurs="0" /><!-- List of (main?) classes that must be loaded into the MC Server -->
<xs:element name="apiProviders" type="apiProvidersType" minOccurs="0" /><!-- ?? -->
<xs:element name="library" type="libraryType" maxOccurs="unbounded" /><!-- Library JAR files which must be included in the client/server classpath -->
</xs:sequence>
<xs:attribute name="path" use="required" /><!-- The path on the client and server where the plug-in should live -->
</xs:complexType>
<xs:simpleType name="versionType">
<xs:annotation>
<xs:documentation>
A comma-separated list of Mirth Connect versions supported by this plug-in.
e.g. "3.4.0, 3.5.0, 3.6.0". Mirth versions are typically 3 numbers separated
by periods, but this validation pattern allows any number of numbers as long
as they are separated by periods.
</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:pattern value="[0-9](\.[0-9])*(,\s*[0-9](\.[0-9])*)*"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="classesType">
<xs:sequence>
<xs:element name="string" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:complexType name="libraryType">
<xs:attribute name="type" type="libraryTypeType" /><!-- CLIENT, SERVER, or SHARED -->
<xs:attribute name="path" type="xs:string" /><!-- Path to library JAR file relative to the plug-in path -->
</xs:complexType>
<xs:complexType name="apiProvidersType">
<xs:attribute name="type" type="apiProvidersTypeType" use="required" />
<xs:attribute name="name" />
<xs:attribute name="minVersion" />
<xs:attribute name="maxVersion" />
</xs:complexType>
<xs:simpleType name="libraryTypeType">
<xs:restriction base="xs:string">
<xs:enumeration value="CLIENT" />
<xs:enumeration value="SERVER" />
<xs:enumeration value="SHARED" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="apiProvidersTypeType">
<xs:restriction base="xs:string">
<xs:enumeration value="SERVLET_INTERFACE_PACKAGE" />
<xs:enumeration value="SERVLET_INTERFACE" />
<xs:enumeration value="CORE_PACKAGE" />
<xs:enumeration value="SERVER_PACKAGE" />
<xs:enumeration value="CORE_CLASS" />
<xs:enumeration value="SERVER_CLASS" />
</xs:restriction>
</xs:simpleType>
</xs:schema>