1

次のような階層構造の値を設定できる、ある種の Web API を開発しています。

<ROOT>
    <COLLECTION_ELEMENT>

        <SIMPLE_ELEMENT /> // alias = nail
        <SIMPLE_ELEMENT /> // alias = hammer

        <COLLECTION_ELEMENT>
            <SIMPLE_ELEMENT /> // red
            <SIMPLE_ELEMENT /> // green
        </COLLECTION_ELEMENT>

    </COLLECTION_ELEMENT>
        ....
    <COLLECTION_ELEMENT>

        <SIMPLE_ELEMENT /> // alias = nail
        <SIMPLE_ELEMENT /> // alias = hammer

        <COLLECTION_ELEMENT>
            <SIMPLE_ELEMENT /> // red
            <SIMPLE_ELEMENT /> // green
        </COLLECTION_ELEMENT>

    </COLLECTION_ELEMENT>
</ROOT>

ご覧のとおり、要素にはと他のCOLLECTION_ELEMENTを含めることができる2 つのタイプがあります。階層構造の各フィールドにはエイリアスがあり、実際にはパートナーに公開されます (階層の構造を公開したくありません)。エイリアスは構造ごとに一意です。SIMPLE_ELEMENTCOLLECTION_ELEMENT

SIMPLE_ELEMENT問題は、ネストされた に属する を更新/設定したいときに、パートナーに適切な API を提供する方法が本当にわからないことですCOLLECTION_ELEMENT。例えば、

現在COLLECTION_ELEMENT、ルート レベルに 2 つの があります。2 番目のエントリhammerの値を更新したい。COLLECTION_ELEMENT今のところ、そのような構造を使用していますhammer[1][2] - newHammerValue

1hammer2 つの親コレクション要素内の最初のオカレンスを設定する必要があることを示します。それはかなりうまく機能しますが、ネストされたレベルが多数あるより複雑な構造がある場合は、このようなものにすることができますhammer[1][2][3][5][2]。その場合、すべてのエラーとインデックスの不一致を処理するのはかなり難しく、パートナーに何のアイデアも与えません。彼は今設定しています。

問題は、WebApiわかりやすい名前を使用して、構造自体をユーザーに公開せずに、階層構造の値を設定する方法です。何か案は?

4

1 に答える 1