Send to your Kindle RIGHT:[[:t/継承]] [[:t/属性]] [[:t/裏]] ページ/属性の継承と、ページ/裏の書き戻しが両立できるかも? 書き戻しは継承後の値を書き換えると、継承元の値が書き変わるというもの。 継承元は複数ある上に、継承される値は複数の(同じ近さの)親から得た値をマージしたもの。継承元にどう反映すべきか不明なため、継承と書き戻しは両立できなかった。 継承時の経緯を調べられれば両立が可能になる。 あるページの属性それぞれがどのページから継承された値かを調べれば… ---- 値の同一性を調べるよりも、経緯を記録したほうが正しい。必要なのは値とその提供元を示す''URI'' → 属性値の出処のURIを記録。出処情報は属性値と同じ適用範囲・有効期間。 マージやオーバーライドが発生した時に書き換え。 → オーバーライド(上書き)なら元を辿れるけど、マージ(を書き換えた値)をマージ前に分離するのは不可能。どう分離しようが適切ではない。 → マージがある限り、継承と書き戻しは両立できない。 RIGHT:[[:t/継承]] [[:t/属性]] [[:t/裏]] ページ/属性の継承と、ページ/裏の書き戻しが両立できるかも? 書き戻しは継承後の値を書き換えると、継承元の値が書き変わるというもの。 継承元は複数ある上に、継承される値は複数の(同じ近さの)親から得た値をマージしたもの。継承元にどう反映すべきか不明なため、継承と書き戻しは両立できなかった。 継承時の経緯を調べられれば両立が可能になる。 あるページの属性それぞれがどのページから継承された値かを調べれば… ---- 値の同一性を調べるよりも、経緯を記録したほうが正しい。必要なのは値とその提供元を示す''URI'' → 属性値の出処のURIを記録。出処情報は属性値と同じ適用範囲・有効期間。 マージやオーバーライドが発生した時に書き換え。 → オーバーライド(上書き)なら元を辿れるけど、マージ(を書き換えた値)をマージ前に分離するのは不可能。どう分離しようが適切ではない。 → マージがある限り、継承と書き戻しは両立できない。