<?xml version="1.0" encoding="UTF-8"?>
<!-- ##################################################################### -->
<!-- ##                                                                 ## -->
<!-- ##	Copyright (c) 2002-2003 BEA Systems, Inc. All Rights Reserved   ## -->
<!-- ##                                                                 ## -->
<!-- ##################################################################### -->
<xs:schema targetNamespace="http://www.bea.com/servers/weblogic/url-template-config/8.0" xmlns="http://www.bea.com/servers/weblogic/url-template-config/8.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <!-- Portal Application -->
    <xs:element name="url-template-config">
        <xs:annotation>
            <xs:documentation>
                The url-template-config element is the root of the URL template
                configuration.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="url-template" minOccurs="0" maxOccurs="unbounded"/>
                <xs:element ref="jpf-url-templates" minOccurs="0" maxOccurs="1"/>
                <xs:element ref="java-portlet-url-templates" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
        </xs:complexType>
        <xs:key name="urlTemplateKey">
            <xs:selector xpath="./url-template"/>
            <xs:field xpath="@name"/>
        </xs:key>
        <xs:keyref name="jpfUrlTemplateKeyRef" refer="urlTemplateKey">
            <xs:selector xpath="./jpf-url-templates/url-template-ref"/>
            <xs:field xpath="@name"/>
        </xs:keyref>
        <xs:keyref name="javaPortletUrlTemplateKeyRef" refer="urlTemplateKey">
            <xs:selector xpath="./java-portlet-url-templates/url-template-ref"/>
            <xs:field xpath="@name"/>
        </xs:keyref>
    </xs:element>

    <xs:element name="url-template">
        <xs:annotation>
            <xs:documentation>
                The url-template element specifies URL templates.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="true">
            <xs:attribute name="name" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
    <xs:element name="jpf-url-templates">
        <xs:annotation>
            <xs:documentation>
                The jpf-url-templates element specifies a set of URL template
                references used for generating JPF URLs
            </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="false">
            <xs:sequence>
                <xs:element ref="url-template-ref" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="java-portlet-url-templates">
        <xs:annotation>
            <xs:documentation>
                The java-portlet-url-templates element specifies a set of URL template
                references used for generating URLs in Java portlets implementing
                javax.portlet.Portlet interface.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType mixed="false">
            <xs:sequence>
                <xs:element ref="url-template-ref" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="url-template-ref">
        <xs:annotation>
            <xs:documentation>
                The url-template-ref element declares references to URL
                templates.
            </xs:documentation>
        </xs:annotation>
        <xs:complexType>
            <xs:attribute name="type" use="required">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="action"/>
                        <xs:enumeration value="secure-action"/>
                        <xs:enumeration value="resource"/>
                        <xs:enumeration value="secure-resource"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:attribute>
            <xs:attribute name="name" type="xs:string" use="required"/>
        </xs:complexType>
    </xs:element>
</xs:schema>
