-1
我有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>
而且我需要answer
任何節點名稱匹配response
值。
<?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>
這就是爲什麼我需要一個節點名稱,而不是價值。
但是,對於值點(。)只能用於節點值而不是在這種情況下。
是的,它的節點的價值工作,但我需要節點的名稱。 我有一個解釋器列表,php,nodejs等等。它看起來像'/usr/bin/php interpreters>',在另一個節點中,我需要選擇這個解釋器。 ' PHP interpreter_type>'。 –
Kirby