<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<xsd:schema xmlns="http://aries.apache.org/xmlns/transactions/v1.0.0"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://aries.apache.org/xmlns/transactions/v1.0.0"
    elementFormDefault="qualified" attributeFormDefault="unqualified"
    version="1.0.0">

    <xsd:annotation>
        <xsd:documentation>
      <![CDATA[
        This is the XML Schema for the OSGi Blueprint declarative transaction 1.0.0 development descriptor.  Blueprint declarative transaction is a custom namespace for OSGi Blueprint service 1.0.0 development descriptor.  It is designed to decorate transaction attribute of the bean components, which can be done at the bean level.  Blueprint configuration files using this schema must indicate the schema using the transactions/v1.0.0 namespace.  For example,        
        <transaction xmlns="http://aries.apache.org/xmlns/transactions/v1.0.0">
        if used as a qualified namespace, "tx" is the recommended namespace prefix.
      ]]>
        </xsd:documentation>
    </xsd:annotation>

    <xsd:simpleType name="TtransactionStrategy">
        <xsd:annotation>
            <xsd:documentation>
        <![CDATA[
          The TtransactionStrategy type defines the transaction attribute for blueprint declarative transaction.  
        ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Required" />
            <xsd:enumeration value="Mandatory" />
            <xsd:enumeration value="RequiresNew" />
            <xsd:enumeration value="Supports" />
            <xsd:enumeration value="NotSupported" />
            <xsd:enumeration value="Never" />
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:complexType name="Ttransaction">
        <xsd:annotation>
            <xsd:documentation>
        <![CDATA[
          Ttransaction defines one or more methods that are intercepted with the specified transaction attribute. Multiple methods names can be wild-carded with '*'.  Methods can be whitespace separated and be a mixture of fixed string and wild-cards. Two wild-cards next to each other are not supported for either the method attribute.        ]]>
            </xsd:documentation>
        </xsd:annotation>
        <xsd:attribute name="method" type="xsd:string" />
        <xsd:attribute name="value" type="TtransactionStrategy" />
    </xsd:complexType>

    <xsd:element name="transaction" type="Ttransaction">
        <xsd:annotation>
            <xsd:documentation>
        <![CDATA[
          The <transaction> element is the root element for blueprint declarative transaction
        ]]>
            </xsd:documentation>
        </xsd:annotation>
    </xsd:element>


</xsd:schema>