<!--
  DTD for org.apache.felix.servicebinder descriptor DTD
  Version: 1.1
-->

<!ELEMENT bundle (component*)>
<!ELEMENT component (property*,provides*,requires*)>
  <!ATTLIST  component
    class CDATA #REQUIRED
  >
<!ELEMENT provides EMPTY>
  <!ATTLIST  provides
    service CDATA #REQUIRED
  >
<!ELEMENT property EMPTY>
  <!ATTLIST  property
    name CDATA #REQUIRED
    type CDATA #REQUIRED
    value CDATA #REQUIRED
  >
<!ELEMENT requires EMPTY>
  <!ATTLIST  requires
    service CDATA #REQUIRED
    filter CDATA #REQUIRED
    cardinality (0..1|0..n|1..1|1..n) #REQUIRED
    policy (static|dynamic) #REQUIRED
    bind-method CDATA #REQUIRED
    unbind-method CDATA #REQUIRED
>
