だから、私はこのようなことができることを知っています:
sitelist: &sites
  - www.foo.com
  - www.bar.com
anotherlist: *sites
そして持っているsitelistとanotherlist両方が含まれwww.foo.comていwww.bar.comます。しかし、私が本当にしたいことのためであるanotherlistにも含まれていwww.baz.com繰り返さなく、www.foo.comとwww.baz.com。
これを行うと、YAMLパーサーで構文エラーが発生します。
sitelist: &sites
  - www.foo.com
  - www.bar.com
anotherlist: *sites
  - www.baz.com
アンカーとエイリアスを使用するだけでは、次のような別のレベルのサブ構造を追加しないと、私が望むことを行うことができないようです。
sitelist: &sites
  - www.foo.com
  - www.bar.com
anotherlist:
  - *sites
  - www.baz.com
つまり、このYAMLファイルの利用者はそれを認識している必要があります。
このようなことをする純粋なYAML方法はありますか?または、特定の種類のサブ構造の変数置換や自動リフティングの実装など、YAML後の処理を使用する必要がありますか?他のいくつかのユースケースを処理するために、すでにそのような後処理を行っているので、完全に嫌いではありません。しかし、私のYAMLファイルは機械で生成されたものではなく、人間によって書き込まれるため、標準のYAML構文に加えて、ユーザーが記憶する必要のあるルールの数を最小限に抑えたいと思います。
また、マップで同様のことができるようになりたいです。
namedsites: &sites
  Foo: www.foo.com
  Bar: www.bar.com
moresites: *sites
  Baz: www.baz.com
私はYAML仕様を検索しましたが、何も見つかりませんでした。そのため、答えは「これを行うことはできません」にすぎないと思います。しかし、誰かが素晴らしいアイデアを持っている場合。
編集:答えがなかったので、私がYAML仕様にないものをだれも見つけたことはなく、これはYAMLレイヤーでは実行できないと思います。それで、将来この質問が見つかる場合に備えて、YAMLを後処理してこれを支援するためのアイデアを提示します。