У меня есть следующие два файла:
<?xml version="1.0" encoding="utf-8" ?>
<!-- D E F A U L T H O S P I T A L P O L I C Y -->
<xas DefaultPolicy="open" DefaultSubjectsFile="subjects.xss">
<rule id="R1" access="deny" object="record" subject="roles/*[name()!='Staff']"/>
<rule id="R2" access="deny" object="diagnosis" subject="roles//Nurse"/>
<rule id="R3" access="grant" object="record[@id=$user]" subject="roles/member[@id=$user]"/>
</xas>
и другой xml-файл с именем subjects.xss:
<?xml version="1.0" encoding="utf-8" ?>
<subjects>
<users>
<member id="dupont" password="4A-4E-E9-17-5D-CE-2C-DD-43-43-1D-F1-3F-5D-94-71">
<name>Pierre Dupont</name>
</member>
<member id="durand" password="3A-B6-1B-E8-C0-1F-CD-34-DF-C4-5E-BA-02-3C-04-61">
<name>Jacqueline Durand</name>
</member>
</users>
<roles>
<Staff>
<Doctor>
<member idref="dupont"/>
</Doctor>
<Nurse>
<member idref="durand"/>
</Nurse>
</Staff>
</roles>
</subjects>
Я пишу лист xsl, в котором будет прочитано значение субъекта для каждого правила в policy.xas, и если текущий зарегистрированный пользователь (доступный как переменная «пользователь» в таблице стилей) содержится в этом значении субъекта (скажем, роли / Медсестра), то сделай что-нибудь.
Я не могу проверить, содержится ли зарегистрированный в данный момент пользователь ($ user, что эквивалентно "durand") в ролях // Медсестра в файле субъектов (который является другим XML-файлом). Надеюсь, это проясняет мой вопрос. Есть идеи? Заранее спасибо.