<?xml version="1.0" encoding="UTF-8"?>
<!--
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN" 
	"http://www.seasar.org/dtd/components21.dtd">
-->
<!ELEMENT components (
        description?,
        include*,
        (component | meta)*
)>

<!ATTLIST components namespace CDATA #IMPLIED>

<!ELEMENT description (
        #PCDATA
)>

<!ELEMENT include EMPTY>
<!ATTLIST include path CDATA #REQUIRED>


<!ELEMENT component (
  #PCDATA | description | arg | property | meta |
            initMethod | destroyMethod | aspect)*>
<!ATTLIST component instance (
  singleton | prototype | outer | request | session) "singleton">
<!ATTLIST component class CDATA #IMPLIED>
<!ATTLIST component name CDATA #IMPLIED>
<!ATTLIST component autoBinding (auto | constructor | property | none) "auto">

<!ELEMENT arg (
        #PCDATA | description | component | meta
)*>

<!ELEMENT property (
        #PCDATA | description | component | meta
)*>

<!ATTLIST property name CDATA #REQUIRED>

<!ATTLIST property getter (true | false) "false">

<!ELEMENT aspect (
        #PCDATA | description | component)*>
<!ATTLIST aspect pointcut CDATA #IMPLIED>

<!ELEMENT initMethod (
        #PCDATA | description | arg
)*>
<!ATTLIST initMethod name CDATA #IMPLIED>

<!ELEMENT destroyMethod (
        #PCDATA | description | arg
)*>
<!ATTLIST destroyMethod name CDATA #IMPLIED>

<!ELEMENT meta (
        #PCDATA | description | component | meta
)*>

<!ATTLIST meta name CDATA #IMPLIED>