0

私は XSD/XMl を初めて使用し、作業しているプロジェクトで使用される xml ファイルのテンプレートを作成しようとしていました。このスキーマは、Visual Studio 内の数人の同僚によって使用されます。私の主な目標は、エラー チェックとオートコンプリート機能を持たせることです。

ただし、私の xml テンプレートには、XSD に含めたい機能が 1 つありますが、それが可能かどうかはわかりません。そうではないと思いますが、確認したいだけです。

基本的に、xml は次のようになります。

<root>
    <parameters>
        <parameter name="@param1"/>
        <parameter name="@param2"/>
        <parameter name="@param3"/>
    </parameters>

    <test>
        <parameter_value parameter_name="@param1" value="whatever"/>
        <parameter_value parameter_name="@param2" value="whatever"/>
    </text>

</root>

ユーザーが最初にパラメーターを「定義」してから、特定のテスト内で値を割り当てるという考え方です。私の質問は、この特定のxmlで宣言されたパラメーターのみを入力できるように、「parameter_name」属性に制限を定義できるかどうかです。これは可能ですか?

よろしくカルロス・ジョルダン

4

1 に答える 1

0

はい、XSD 1.0 でこれを行うことができます。通常、次のようなものです。

<xs:element name="root">
  <...>
  <xs:key name="paramName">
    <xs:selection xpath="parameters/parameter"/>
    <xs:field xpath="@name"/>
  </xs:key>
  <xs:keyref refer="paramName">
    <xs:selection xpath="text/parameter_value"/>
    <xs:field xpath="@parameter_name"/>
  </xs:keyref>
</xs:element>

これは記憶によるものなので、お気に入りの XSD テキスト ブックで正しい構文を調べる準備をしておいてください。

于 2012-07-06T15:13:39.600 に答える