<?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.
-->

<Policy xmlns="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17" 
		xmlns:md="http://www.medico.com/schemas/record" 
		xmlns:xacml-context="urn:oasis:names:tc:xacml:3.0:context:schema:os" 
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
		PolicyId="urn:oasis:names:tc:xacml:2.0:conformance-test:IIIG006d: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>
        Policy for Conformance Test IIIG005d.  Copy of IIG005 using Deprecated XPath functions.
        Purpose - Non-mandatory Functions: Case: false: xpath-node-match DEPRECATED
         OPTIONAL test - function may or may not be implemented.  See the Response file.
    </Description>
    <PolicyDefaults>
        <XPathVersion>http://www.w3.org/TR/1999/Rec-xpath-19991116</XPathVersion>
    </PolicyDefaults>
    <Target/>
    <Rule Effect="Permit" RuleId="urn:oasis:names:tc:xacml:2.0:conformance-test:IIIG005d:rule">
        <Condition>
		  <Apply FunctionId="urn:oasis:names:tc:xacml:1.0:function:xpath-node-match">
				<!-- get two lists with nothing in common to yield no-match so that return from evaluation is NotApplicable -->
				<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string" 
                	 	XPathCategory="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" >
                	 		//md:record/*/md:name
                </AttributeValue>
				<AttributeValue DataType="http://www.w3.org/2001/XMLSchema#string" 
                	 	XPathCategory="urn:oasis:names:tc:xacml:3.0:attribute-category:resource" >
                	 		//md:record/*/md:item
                </AttributeValue>
		  </Apply>
        </Condition>
    </Rule>
</Policy>
