/usr/share/arc/schema/loader.xsd is in libarccommon1 1.1.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | <?xml version="1.0" encoding="UTF-8"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.nordugrid.org/schemas/loader/2009/08"
xmlns="http://www.nordugrid.org/schemas/loader/2009/08"
xmlns:ini="http://www.nordugrid.org/schemas/ini/2009/08"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<!-- ModuleManager -->
<xsd:element name="ModuleManager">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">
This element specifies parameters needed to successfully load plugins. Currently it allows to specify filesystem paths to directories where plugin libraries are located.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Path" minOccurs="0" maxOccurs="unbounded" default="?">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Specify filesystem paths to directories where plugin libraries are located.
</xsd:documentation>
<xsd:appinfo>
<ini:tag>modulepath</ini:tag>
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Plugins -->
<xsd:element name="Plugins">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">
This element defines shared library which contains plugins to be used. It is supposed to be used if name of library is not same as name of plugin and hence can't be located automatically.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Name" minOccurs="0" maxOccurs="unbounded">
<xsd:annotation>
<xsd:documentation xml:lang="en">
Specify the name of the plugin.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Chain -->
<xsd:element name="Chain">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">
This element is not required and does not affect chains directly. It's purpose is to group multiple components logically mostly for readability purpose.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="Chain" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="Component" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="Plexer" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="Service" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="SecHandler" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- Component -->
<xsd:element name="next">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="id" type="xsd:string" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Component">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">
This element defines MCC plugin. Required attribute 'name' specifies name of plugin as defined in MCC description. Required attribute 'id' assigns identifier which is used to refer to this element from others. Sub-elements 'next' refer to next components in a chain through their attribute 'id' and their content represent assigned component-specific label. If attribute 'id' is missing all 'next' refer to next component in document. If 'next' is missing one label-less 'next' is assigned automatically. Presence of attribute 'entry' exposes this MCC through Loader class interface to external code. That is meant to be used in code which cretes chains dynamically like client utilities. Rest elements define component-specific configuration.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="next" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="SecHandler" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:attribute name="entry" type="xsd:string" use="optional"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
</xsd:element>
<!-- Plexer -->
<xsd:element name="Plexer">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">
This element is a Plexer. Optional attribute 'id' assigns identifier which is used to refer to this element from others. If not specified it will be assigned to "plexer" automatically. Sub-elements 'next' refer to next components in a chain and their content represent requested endpoints. In Plexer content of element 'next' represents Regular Expression pattern. For every incoming message path part of message's endpoint is matched pattern.In case of ordinary service element 'next' may look like
<next>^/service$</next>
If service is also responsible for whole subtree then simple solution is
<next>^/service</next>
But more safer solution would be to use 2 elements
<next>^/service$</next>
<next>^/service/</next>
Unmatched part of message endpoint is propagated with incoming message in
attribute PLEXER:EXTENSION and may be used by service to determine response.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="next" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string" use="optional"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
</xsd:element>
<!-- Service -->
<xsd:element name="Service">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">
This element represents a service - last compnent in a chain. Required attribute 'name' specifies name of plugin as defined in Service description. Required attribute 'id' assigns identifier which is used to refer to this element from others. Rest elements define service-specific configuration.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="SecHandler" minOccurs="0" maxOccurs="unbounded"/>
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="id" type="xsd:string" use="required"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
</xsd:element>
<!-- SecHandler -->
<xsd:element name="SecHandler">
<xsd:complexType>
<xsd:annotation>
<xsd:documentation xml:lang="en">
This element specifies security handler plugin to be called at various stages of message processing. Depending on produced result message may be either sent farther through chain or processing would be cancelled. Required attribute 'name' specifies name of plugin. Attibute 'id' creates identifier of SecHandler which may be used to refer to it. If attribute 'refid' is defined then configuration of SecHendler is provided by another element within ArcConfig with corresponding 'id'. Attribute 'event' defines to which queue inside MCC SecHandler to be attached. If it's missing SecHandler is attached to default queue if MCC has such. Names of queues are MCC specific. If not otherwise specified they are 'incoming' and 'outgoing' and are processed for incoming and outgoing messages. There is no default queue by default.
</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required"/>
<xsd:attribute name="id" type="xsd:string" use="optional"/>
<xsd:attribute name="refid" type="xsd:string" use="optional"/>
<xsd:attribute name="event" type="xsd:string" use="optional"/>
<xsd:anyAttribute namespace="##other" processContents="lax"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
|