blob: caf521b02be8e294f97317e59a5ce13b47cdcbda [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://www.mulesource.org/schema/mule/schemadoc/2.1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.mulesource.org/schema/mule/schemadoc/2.1"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:annotation>
<xsd:documentation>This schema provides a schema doc extentions that can be embedded in Mule schemas. These
elements will be used to render additional wiki content associated with the element being annotated.
Elements within this schema should be embedded under 'xsd:element/xsd:annotation/xsd:appinfo'.
To stick to convention and to ensure that XSLs will work this schema should be included in other mule
schemas using the 'schemadoc' prefix namespace.
</xsd:documentation>
<xsd:appinfo>
<page-title>SchemaDoc Reference</page-title>
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="snippet" type="snippetType">
<xsd:annotation>
<xsd:documentation>The snippet allows for code snippets to be associated with an element in a schema. This
is useful for surfacing documentation on the wiki. When the schema reference is generated for the wiki,
the code snippets will also be rendered when using the 'single-element-wike.xsl'.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="page-title" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The page title to use when rendering this schema.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="short-name" type="xsd:string">
<xsd:annotation>
<xsd:documentation>The short name of the module or transport, i.e. 'xml' or 'tcp'.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="additional-documentation" type="additionalDocumentationType">
<xsd:annotation>
<xsd:documentation>Additional documentation that can be rendered with the schema. Note that this element can
only be used in {{/xsd:schema/xsd:annotation/xsd:appinfo}}, it will be ignorred if used anywhere else.
Enter
the documentation in the body of this element.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="additionalDocumentationType" mixed="true">
<xsd:attribute name="where" use="required">
<xsd:annotation>
<xsd:documentation>The point at which the documentation is rendered.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="before-common-elements">
<xsd:annotation>
<xsd:documentation>The documentation will appear after any title text but before any of the
common elements are rendered.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="after-common-elements">
<xsd:annotation>
<xsd:documentation>The documentation will appear right after common elements are rendered.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="before-specific-elements">
<xsd:annotation>
<xsd:documentation>The documentation will appear right before the elements specific to the
schema are rendered.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="after-specific-elements">
<xsd:annotation>
<xsd:documentation>The documentation will appear right after the elements specific to the
schema are rendered.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="before-single-element">
<xsd:annotation>
<xsd:documentation>If a specific element was named, this documentation will appear directly
before the element. The mode is less useful but supported for completeness.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="after-single-element">
<xsd:annotation>
<xsd:documentation>If a specific element was named, this documentation will appear directly
after the element. The mode is less useful but supported for completeness.
</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="snippetType" mixed="true">
<xsd:attribute name="id" type="xsd:NMTOKEN" use="required">
<xsd:annotation>
<xsd:documentation>The ID of the snippet to embed in the wiki page. This ID is embedded in the source
file using a START SNIPPET xxx comment.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="lang">
<xsd:annotation>
<xsd:documentation>The language format to use when rendering the content of the snippet on the wiki.
</xsd:documentation>
</xsd:annotation>
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="xml"/>
<xsd:enumeration value="java"/>
<xsd:enumeration value="javadoc"/>
<xsd:enumeration value="bash"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="sourcePath" type="xsd:string" use="required">
<xsd:annotation>
<xsd:documentation>This is the path to the source file. Note this should be relative to the project root
directory i.e. transport/jms/src/main/resources/etc...
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:element name="transport-features" type="transportFeaturesType">
<xsd:annotation>
<xsd:documentation>Defines meta information about transports such as whether they can send or receive events
and if they supprt transactions.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="transportFeaturesType">
<xsd:sequence>
<xsd:element name="inboundMEPs" type="inboundMEPsType" minOccurs="1">
<xsd:annotation>
<xsd:documentation>The Inbound MEPs that are supported by this Transport.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="outboundMEPs" type="outboundMEPsType" minOccurs="1">
<xsd:annotation>
<xsd:documentation>The Outbound MEPs that are supported by this Transport.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
<xsd:attribute name="receiveEvents" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation>Whether the transport can receive events and thus can be used for an inbound
endpoint.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="dispatchEvents" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation>Ehether the transport can be used to dispatch events and thus is supported as an
outbound endpoint.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="requestEvents" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation>Whether the transport can be used to request events directly from the source.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="responseEvents" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation>Whether the transport can be used in request/response style messaging. This means
that the transport provides a back-channel to the callee.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="transactions" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation>Whether transactions are supported by the transports. Transports that support (/)A
transactions can be configured in a distributed 2 Phase Commit (Distributed) transaction.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="transactionTypes" type="xsd:string" use="optional">
<xsd:annotation>
<xsd:documentation>A comma separated list of transaction types, i.e. local, XA</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="streaming" type="xsd:boolean" use="required">
<xsd:annotation>
<xsd:documentation>Whether the transport supports streaming of the data is provides or publishes.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="inboundMEPsType">
<xsd:attribute name="none" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="in-only" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="in-out" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="in-optional-out" type="xsd:boolean"></xsd:attribute>
</xsd:complexType>
<xsd:complexType name="outboundMEPsType">
<xsd:attribute name="none" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="out-only" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="out-in" type="xsd:boolean"></xsd:attribute>
<xsd:attribute name="out-optional-in" type="xsd:boolean"></xsd:attribute>
</xsd:complexType>
</xsd:schema>