<?xml version="1.0" encoding="UTF-8"?>
<xsl:schema xmlns:xsl="
http://www.w3.org/2001/XMLSchema" xmlns="
http://www.easyjf.com/schema/easyjweb" targetNamespace="
http://www.easyjf.com/schema/easyjweb" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xsl:simpleType name="property-value-type">
<xsl:restriction base="xsl:string">
<xsl:enumeration value="com.easyjweb.debug"/>
<xsl:enumeration value="com.easyjweb.maxUploadFileSize"/>
<xsl:enumeration value="com.easyjweb.uploadSizeThreshold"/>
</xsl:restriction>
</xsl:simpleType>
<xsl:simpleType name="scope-type">
<xsl:restriction base="xsl:string">
<xsl:enumeration value="request"/>
<xsl:enumeration value="session"/>
</xsl:restriction>
</xsl:simpleType>
<xsl:simpleType name="type-type">
<xsl:restriction base="xsl:string">
<xsl:enumeration value="template"/>
<xsl:enumeration value="html"/>
</xsl:restriction>
</xsl:simpleType>
<xsl:simpleType name="alertType-type">
<xsl:restriction base="xsl:string">
<xsl:enumeration value="javascript:page"/>
</xsl:restriction>
</xsl:simpleType>
<xsl:simpleType name="template-base-type">
<xsl:restriction base="xsl:string"/>
</xsl:simpleType>
<xsl:complexType name="app-class-type">
<xsl:attribute name="class" type="xsl:string" use="required"/>
<xsl:attribute name="init-method" type="xsl:string" use="required"/>
<xsl:attribute name="destroy-method" type="xsl:string" use="optional"/>
</xsl:complexType>
<xsl:complexType name="init-app-type">
<xsl:sequence>
<xsl:element name="app-class" type="app-class-type" maxOccurs="unbounded"/>
</xsl:sequence>
</xsl:complexType>
<xsl:element name="property">
<xsl:complexType>
<xsl:simpleContent>
<xsl:extension base="xsl:string">
<xsl:attribute name="name" type="property-value-type" use="required"/>
</xsl:extension>
</xsl:simpleContent>
</xsl:complexType>
</xsl:element>
<xsl:complexType name="page-type">
<xsl:attribute name="name" type="xsl:string" use="required"/>
<xsl:attribute name="url" type="xsl:string" use="required"/>
<xsl:attribute name="type" type="type-type" use="optional" default="template"/>
</xsl:complexType>
<xsl:complexType name="interceptor-type">
<xsl:attribute name="class" use="required"/>
</xsl:complexType>
<xsl:complexType name="module-type">
<xsl:sequence>
<xsl:element name="interceptor" type="interceptor-type" minOccurs="0" maxOccurs="unbounded"/>
<xsl:element name="page" type="page-type" minOccurs="0" maxOccurs="unbounded"/>
</xsl:sequence>
<xsl:attribute name="name" type="xsl:string" use="required"/>
<xsl:attribute name="path" type="xsl:string" use="required"/>
<xsl:attribute name="form" type="xsl:string" use="optional"/>
<xsl:attribute name="scope" type="scope-type" use="required"/>
<xsl:attribute name="action" type="xsl:string" use="required"/>
<xsl:attribute name="defaultPage" type="xsl:string" use="optional"/>
</xsl:complexType>
<xsl:complexType name="frame-setting-type">
<xsl:sequence>
<xsl:element name="template-base" type="template-base-type" minOccurs="0"/>
<xsl:element name="init-app" type="init-app-type" minOccurs="0"/>
<xsl:element ref="property" minOccurs="0" maxOccurs="3"/>
</xsl:sequence>
</xsl:complexType>
<xsl:complexType name="modules-type">
<xsl:sequence>
<xsl:element name="module" type="module-type" maxOccurs="unbounded"/>
</xsl:sequence>
</xsl:complexType>
<xsl:complexType name="attribute-type">
<xsl:attribute name="name" type="xsl:string" use="required"/>
<xsl:attribute name="size" type="xsl:integer" use="optional"/>
<xsl:attribute name="type" type="xsl:string" use="optional"/>
<xsl:attribute name="notNull" type="xsl:boolean" use="optional"/>
<xsl:attribute name="initial" type="xsl:string" use="optional"/>
<xsl:attribute name="event" type="xsl:string" use="optional"/>
</xsl:complexType>
<xsl:complexType name="form-type">
<xsl:sequence>
<xsl:element name="attribute" type="attribute-type" minOccurs="0" maxOccurs="unbounded"/>
</xsl:sequence>
<xsl:attribute name="name" type="xsl:string" use="required"/>
<xsl:attribute name="bean" type="xsl:string" use="required"/>
<xsl:attribute name="event" type="xsl:string" use="optional"/>
<xsl:attribute name="clientValidate" type="xsl:boolean" use="optional"/>
<xsl:attribute name="serverValidate" type="xsl:boolean" use="optional"/>
<xsl:attribute name="alertType" type="alertType-type" use="optional"/>
</xsl:complexType>
<xsl:complexType name="forms-type">
<xsl:sequence>
<xsl:element name="form" type="form-type" maxOccurs="unbounded"/>
</xsl:sequence>
</xsl:complexType>
<xsl:element name="easyjf-web">
<xsl:annotation>
<xsl:documentation>easyjf-web.xml schema for easyjweb 0.5-0.7 ed</xsl:documentation>
</xsl:annotation>
<xsl:complexType>
<xsl:sequence>
<xsl:element name="frame-setting" type="frame-setting-type" nillable="true"/>
<xsl:element name="modules" type="modules-type" nillable="false"/>
<xsl:element name="forms" type="forms-type" nillable="true"/>
</xsl:sequence>
</xsl:complexType>
</xsl:element>
</xsl:schema>