2013-05-22 3 views
0

Я работаю с политикой XACML и у меня есть следующий ресурс:изменить тип ресурса из anyURI в строку

<Resources> 
     <Resource> 
     <ResourceMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal"> 
      <AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">mail</AttributeValue> 
      <ResourceAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" DataType="http://www.w3.org/2001/XMLSchema#anyURI"/> 
     </ResourceMatch> 
     </Resource> 
    </Resources> 

Я хочу этот ресурс должен быть строкой, а не тип anyURI для того, чтобы манипулировать любые данные как ресурс. В противном случае, какова возможная ценность типа данных anyURI?

ответ

1

Спецификация говорит, что идентификатор ресурса SHELL be anyURI. Теоретически вы можете использовать строковый тип данных. Функция тогда будет равна строке.

В то же время, в большинстве случаев вы можете использовать anyURI без проблем. Например, строка «Алиса» - это anyURI.

В качестве альтернативы вы можете ввести другой атрибут, просто назовите его соответствующим образом и используйте вместо идентификатора ресурса.

0

В дополнении к тому, что Майк сказал, вы всегда можете создать новый атрибут с точно таким же идентификатором, категорию (если в XACML 3.0), и, возможно эмитент, но изменить тип данных из anyURI в строку:

 <ResourceAttributeDesignator 
      AttributeId="urn:oasis:names:tc:xacml:1.0:resource:resource-id" 
      DataType="http://www.w3.org/2001/XMLSchema#string"/> 

Просто убедитесь, что ваш запрос XACML и политика XACML используют один и тот же атрибут.

 Смежные вопросы

  • Нет связанных вопросов^_^