modules/ROOT/attachments/schemas/blueprint-cm/blueprint-cm-1.2.0.xsd (114 lines of code) (raw):

<?xml version="1.0" encoding="UTF-8" standalone="no"?> <!-- /* * $Revision$ * * Copyright (c) OSGi Alliance (2008, 2009). All Rights Reserved. * * Licensed 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/blueprint/xmlns/blueprint-cm/v1.2.0" xmlns:ext100="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" xmlns:ext110="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.1.0" xmlns:ext120="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.2.0" xmlns:ext130="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.3.0" xmlns:ext140="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.4.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:bp="http://www.osgi.org/xmlns/blueprint/v1.0.0" targetNamespace="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.2.0" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0.0"> <xsd:import namespace="http://www.osgi.org/xmlns/blueprint/v1.0.0" /> <xsd:import namespace="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.0.0" /> <xsd:import namespace="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.1.0" /> <xsd:import namespace="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.2.0" /> <xsd:import namespace="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.3.0" /> <xsd:import namespace="http://aries.apache.org/blueprint/xmlns/blueprint-ext/v1.4.0" /> <!-- property placeholder --> <xsd:element name="property-placeholder" type="TpropertyPlaceholder"/> <xsd:complexType name="TpropertyPlaceholder"> <xsd:complexContent> <xsd:extension base="bp:Tcomponent"> <xsd:sequence> <!-- nested properties declaration --> <xsd:element name="default-properties" type="TdefaultProperties" minOccurs="0" maxOccurs="1"/> <xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref="ext100:location" /> <xsd:element ref="ext110:location" /> <xsd:element ref="ext120:location" /> <xsd:element ref="ext130:location" /> <xsd:element ref="ext140:location" /> </xsd:choice> </xsd:sequence> <!-- #### What should be the type for a persistent id? I think we need to define one like class and method --> <xsd:attribute name="persistent-id" type="xsd:string" use="required"/> <xsd:attribute name="placeholder-prefix" type="xsd:string" use="optional" default="${"/> <xsd:attribute name="placeholder-suffix" type="xsd:string" use="optional" default="}"/> <xsd:attribute name="defaults-ref" type="bp:Tidref" use="optional"/> <xsd:attribute name="update-strategy" type="TplaceholderUpdateStrategyType" use="optional" default="none"/> <xsd:attributeGroup ref="extAttributes" /> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:simpleType name="TplaceholderUpdateStrategyType"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="none"/> <xsd:enumeration value="reload"/> </xsd:restriction> </xsd:simpleType> <!-- #### is this the correct type here? This is defining placeholder properties, so should this be a restricted set of value types or should this be expanded to all of the elements you can inject into a bean property? --> <xsd:complexType name="TdefaultProperties"> <xsd:sequence minOccurs="0" maxOccurs="unbounded"> <xsd:element name="property" type="bp:Tproperty"/> </xsd:sequence> </xsd:complexType> <xsd:attributeGroup name="extAttributes"> <xsd:attribute ref="ext100:ignore-missing-locations" use="optional" /> <xsd:attribute ref="ext110:ignore-missing-locations" use="optional" /> <xsd:attribute ref="ext120:ignore-missing-locations" use="optional" /> <xsd:attribute ref="ext130:ignore-missing-locations" use="optional" /> <xsd:attribute ref="ext140:ignore-missing-locations" use="optional" /> <xsd:attribute ref="ext100:system-properties" use="optional" /> <xsd:attribute ref="ext110:system-properties" use="optional" /> <xsd:attribute ref="ext120:system-properties" use="optional" /> <xsd:attribute ref="ext130:system-properties" use="optional" /> <xsd:attribute ref="ext140:system-properties" use="optional" /> </xsd:attributeGroup> <!-- managed-properties --> <xsd:element name="managed-properties" type="TmanagedProperties"/> <xsd:complexType name="TmanagedProperties"> <xsd:attribute name="persistent-id" type="xsd:string" use="required"/> <xsd:attribute name="update-strategy" type="TupdateStrategyType" use="optional"/> <xsd:attribute name="update-method" type="xsd:string" use="optional"/> </xsd:complexType> <xsd:simpleType name="TupdateStrategyType"> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="none"/> <xsd:enumeration value="component-managed"/> <xsd:enumeration value="container-managed"/> </xsd:restriction> </xsd:simpleType> <!-- managed-service-factory --> <xsd:element name="managed-service-factory" type="TmanagedServiceFactory"/> <xsd:complexType name="TmanagedServiceFactory"> <xsd:complexContent> <xsd:extension base="bp:Tcomponent"> <xsd:sequence> <xsd:group ref="bp:GbaseServiceElements"/> <xsd:element name="managed-component" type="TmanagedComponent" minOccurs="1" maxOccurs="1"/> </xsd:sequence> <xsd:attribute name="interface" type="bp:Tclass" use="optional" /> <xsd:attribute name="ref" type="bp:Tidref" use="optional" /> <xsd:attribute name="auto-export" type="bp:TautoExportModes" default="disabled" /> <xsd:attribute name="ranking" type="xsd:int" default="0"/> <xsd:attribute name="factory-pid" type="xsd:string" use="required"/> <xsd:anyAttribute namespace="##other" processContents="strict"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> <xsd:complexType name="TmanagedComponent"> <xsd:group ref="bp:GbeanElements"/> <xsd:attribute name="class" type="bp:Tclass"/> <xsd:attribute name="init-method" type="bp:Tmethod"/> <xsd:attribute name="destroy-method" type="bp:Tmethod"/> <xsd:attribute name="factory-method" type="bp:Tmethod"/> <xsd:attribute name="factory-component" type="bp:Tidref"/> <xsd:anyAttribute namespace="##other" processContents="strict"/> </xsd:complexType> <!-- cm-properties --> <xsd:element name="cm-properties" type="TcmProperties"/> <xsd:complexType name="TcmProperties"> <xsd:complexContent> <xsd:extension base="bp:Tcomponent"> <xsd:attribute name="persistent-id" type="xsd:string" use="required"/> <xsd:attribute name="update" type="xsd:boolean" use="optional" default="false"/> </xsd:extension> </xsd:complexContent> </xsd:complexType> </xsd:schema>