У меня есть XMLXML Селектор схемы XSD XPath к узлу имя
<survey xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="a2.xsd">
<question>
<answer>
<yes>Yes!!!</yes>
<no>No...</no>
</answer>
<response>yes</response>
<response>no</response>
</question>
</survey>
И мне нужно, чтобы соответствовать response
значения с любым именем узла в answer
.
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<xsd:element name="survey">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="question">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="answer">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="yes" type="xsd:string" />
<xsd:element name="no" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="response" maxOccurs="unbounded" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:keyref name="responseValidAnswerKeyRef" refer="validAnswerKey">
<xsd:selector xpath=".//response" />
<xsd:field xpath="." />
</xsd:keyref>
<xsd:key name="validAnswerKey">
<xsd:selector xpath=".//answer/*" />
<xsd:field xpath="???" />
</xsd:key>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
То, что я должен написать в <xsd:field xpath="???" />
в validAnswerKey
для извлечения имен узлов («да», «нет», а не значения их)?
UPD1
Реальный пример. У меня есть список переводчиков, PHP, nodejs и т.д. Похоже
<interpreters>
<php>/usr/bin/php</php>
<nodejs>/usr/bin/node</nodejs>
</interpreters>
и в другом узле Мне нужно выбрать этот переводчик.
<interpreter_type>php</interpreter_type>
Вот почему мне нужно имя с узла, вместо значения.
Но да, для значения dot (.) Можно использовать только для значение узла и не в этом случае.
Да, со значением узла он работает, но мне нужно имя узла. У меня есть список интерпретаторов, php, nodejs и т. Д. Он выглядит как '<переводчики>/usr/bin/php interpers>', а в другом узле мне нужно выбрать этот интерпретатор. ' PHP interpreter_type>'. –
Kirby