<?xml version="1.0" encoding="UTF-8"?>

<!--
  ~ Licensed to the Apache Software Foundation (ASF) under one
  ~ or more contributor license agreements. See the NOTICE file
  ~ distributed with this work for additional information
  ~ regarding copyright ownership. The ASF licenses this file
  ~ to you 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.
  -->

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ramp="http://ws.apache.org/rampart/policy" targetNamespace="http://ws.apache.org/rampart/policy" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="RampartConfig">
		<xs:annotation>
			<xs:documentation>Rampart specific configuration assertion</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="user" type="xs:string"/>
				<xs:element name="encryptionUser" type="xs:string" minOccurs="0"/>
				<xs:element name="passwordCallbackClass" type="xs:string"/>
				<xs:element name="encryptionCypto" type="ramp:crypto" minOccurs="0"/>
				<xs:element name="signatureCypto" type="ramp:crypto" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="crypto">
		<xs:annotation>
			<xs:documentation>Crypto configuration assertion</xs:documentation>
		</xs:annotation>
		<xs:sequence maxOccurs="unbounded">
			<xs:element name="property" type="xs:string"/>
		</xs:sequence>
		<xs:attribute name="provider"/>
	</xs:complexType>
</xs:schema>
