<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!--
  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.
-->

<PolicySet xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		PolicyCombiningAlgId="urn:oasis:names:tc:xacml:3.0:policy-combining-algorithm:deny-overrides" 
		PolicySetId="urn:oasis:names:tc:xacml:2.0:conformance-test:IIB301:policyset" 
		Version="1.0" 
		xsi:schemaLocation="urn:oasis:names:tc:xacml:3.0:policy:schema:os access_control-xacml-2.0-policy-schema-os.xsd">
    <Description>
        PolicySet for Conformance Test IIB301.
        Purpose - Target Matching: Enhanced Target (fail)
	    Any Subject can perform anVersion 3.0 enhanced Target mixing categories in same logical operation:
	        	(Doctor AND medical record) AND (read OR write)
	    Request for this test does not match => NotApplicable
    </Description>
    <Target/>
    
    
	<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" 
			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
			PolicyId="urn:oasis:names:tc:xacml:2.0:conformance-test:IIB301:policy" 
			RuleCombiningAlgId="urn:oasis:names:tc:xacml:3.0:rule-combining-algorithm:deny-overrides" 
			Version="1.0" 
			xsi:schemaLocation="urn:oasis:names:tc:xacml:3.0:policy:schema:os  access_control-xacml-2.0-policy-schema-os.xsd">
	    <Description>
	        Any Subject can perform anVersion 3.0 enhanced Target mixing categories in same logical operation:
	        	(Doctor AND medical record) AND (read OR write)
	        Request for this test does not match => Indeterminate
	    </Description>
	  <Target>
	    <AnyOf>
	      <AllOf>
	        <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
	          <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">read</AttributeValue>
	          <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" 
	          		Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
	          		DataType="http://www.w3.org/2001/XMLSchema#string" 
	          		MustBePresent="false"/>
	        </Match>
	      </AllOf>
	      <AllOf>
	        <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
	          <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">write</AttributeValue>
	          <AttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:action:action-id" 
	          		Category="urn:oasis:names:tc:xacml:3.0:attribute-category:action" 
	          		DataType="http://www.w3.org/2001/XMLSchema#string" 
	          		MustBePresent="false"/>
	        </Match>
	      </AllOf>
	    </AnyOf>
	    <AnyOf>
	      <AllOf>
	        <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
	          <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">doctor</AttributeValue>
	          <AttributeDesignator AttributeId="role" 
	          		Category="urn:oasis:names:tc:xacml:1.0:subject-category:access-subject" 
	          		DataType="http://www.w3.org/2001/XMLSchema#string" 
	          		MustBePresent="false"/>
	        </Match>
	        <Match MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal">
	          <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string">medical record</AttributeValue>
	          <AttributeDesignator AttributeId="resource-type" 
	          		Category="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" 
	          		DataType="http://www.w3.org/2001/XMLSchema#string" 
	          		MustBePresent="false"/>
	        </Match>
	      </AllOf>
	    </AnyOf>
	  </Target>
	
	    <Rule Effect="Permit" RuleId="urn:oasis:names:tc:xacml:2.0:conformance-test:IIB301:rule">
	        <Description>
	            Always return Permit.
	        </Description>
	    </Rule>
	</Policy>
</PolicySet>
