Announcement

Collapse
No announcement yet.

Vorhandensein eines anderen Elements mittels Assertions prüfen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Vorhandensein eines anderen Elements mittels Assertions prüfen

    Hallo zusammen,

    ich bin auf der Suche nach einer Möglichkeit bei Vorhandensein eines bestimmten Elements auf das Vorhandensein eines anderen zu prüfen. Praktisches Beispiel: Ich habe eine fiktive Softwarekomponente myComponent_A die nur bei Vorhandensein eines J2EE Application Servers ausgewählt sein darf. MyComponent_B hat diese Einschränkung nicht. Leider unterstützt mein Editor noch keine Assertions, so dass ich diese manuell einfügen muss. Vielleicht kann mir jemand auf die Sprünge helfen, gerne auch wenn Ihr noch andere gravierende Fehler entdeckt.

    Herzlichen Dank!!
    Klayman

    HTML Code:
    <?xml version="1.0" encoding="UTF-8"?>
    <!-- Mit XMLSpy v2012 rel. 2 sp1 (x64) (http://www.altova.com) bearbeitet -->
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
    	<xs:element name="Application">
    		<xs:complexType>
    			<xs:sequence>
    				<xs:element name="Environment">
    					<xs:complexType>
    						<xs:choice>
    							<xs:element name="J2EE_ApplicationSrv" type="xs:boolean"/>
    							<xs:element name="Other_ApplicationSrv" type="xs:boolean"/>
    						</xs:choice>
    					</xs:complexType>
    				</xs:element>
    				<xs:element name="Components" maxOccurs="unbounded">
    					<xs:complexType>
    						<xs:sequence>
    							<xs:element name="BusinessComponents">
    								<xs:complexType>
    									<xs:choice>
    										<xs:element name="MyComponent_A" type="MyComponent_A"/>
    										<xs:element name="MyComponent_B" type="MyComponent_B"/>
    									</xs:choice>
    								</xs:complexType>
    							</xs:element>
    							<xs:element name="OtherComponent">
    								<xs:complexType>
    									<xs:sequence>
    										<xs:element name="OtherFeature1" type="xs:boolean"/>
    										<xs:element name="OtherFeature2" type="xs:boolean"/>
    									</xs:sequence>
    								</xs:complexType>
    							</xs:element>
    						</xs:sequence>
    					</xs:complexType>
    				</xs:element>
    				<xs:element name="Deployment_Data" maxOccurs="unbounded">
    					<xs:complexType>
    						<xs:choice>
    							<xs:element name="Installation_Scripts" type="xs:anyURI"/>
    							<xs:element name="Initial_Data_Sources" type="xs:anyURI"/>
    						</xs:choice>
    					</xs:complexType>
    				</xs:element>
    			</xs:sequence>
    			<xs:assert test="if(@MyComponent_A eq 'true') then (@J2EE_ApplicationSrv eq 'true')"/>
    		</xs:complexType>
    	</xs:element>
    	<xs:complexType name="RX-Interface">
    		<xs:choice>
    			<xs:element name="X.400" type="xs:boolean"/>
    			<xs:element name="SMTP" type="xs:boolean"/>
    		</xs:choice>
    	</xs:complexType>
    	<xs:complexType name="TX-Interface">
    		<xs:choice>
    			<xs:element name="ESB" type="xs:boolean"/>
    			<xs:element name="Web" type="xs:boolean"/>
    		</xs:choice>
    	</xs:complexType>
    	<xs:complexType name="Environment">
    		<xs:choice>
    			<xs:element name="J2EE_ApplicationSrv"/>
    			<xs:element name="Corba_ApplicationSrv"/>
    		</xs:choice>
    	</xs:complexType>
    	<xs:complexType name="MyComponent_A">
    		<xs:sequence>
    			<xs:element name="ProcessController"/>
    			<xs:element name="Parser"/>
    			<xs:element name="Message"/>
    			<xs:element name="XML_Serializer"/>
    			<xs:element name="Messenger"/>
    			<xs:element name="RX-Interface" type="RX-Interface"/>
    			<xs:element name="TX-Interface" type="TX-Interface"/>
    		</xs:sequence>
    	</xs:complexType>
    	<xs:complexType name="MyComponent_B">
    		<xs:sequence/>
    	</xs:complexType>
    </xs:schema>
Working...
X