SAPUI5 チュートリアル Data Binding Step15

Get Started: Setup and Tutorialsにある。Basicsの[Walkthrough]Data Bindingの和訳資料作成見直し。Step15:Aggregation Binding Using a Factory Functionのコードが、Web画面に載ってるコードとダウンロードしたファイルのコードが違っている件。Web画面のだとうまく行かない。前ステップのコードを、Webチュートリアルを見ながら修正して実行したら実行時エラーとなり何も表示されない。コンソールには以下のメッセージが表示される。

Uncaught Error: resource sap/ui/demo/db/view/App.view.xml could not be loaded from ./view/App.view.xml.
Check for 'file not found' or parse errors. Reason: Error: Invalid XML

App.view.xmlに追加した<core:Fragment>を削除するとエラーは回避できるが、意図した結果は得られない。

    <dependents>
        <core:Fragment fragmentName="sap.ui.demo.db.view.ProductSimple" type="XML"/>    
        <core:Fragment fragmentName="sap.ui.demo.db.view.ProductExtended" type="XML"/>
    </dependents>
  • APIリファレンスを見るとdependentsの子要素はsap.ui.core.Elment型かそのサブクラスと指定されている。しかしFragmentはsap.ui.core.Fragmentであり、sap.ui.core.Elmentと継承関係に無い。
  • fragmentNameで指定しているProductSimple.fragment.xml とProductExtended.fragment.xmlは先頭行で<core:FragmentDefinition >という要素を指定しているが、APIリファレンスに該当するクラスは記載されていない。

これに対し実行用Demo Kitおよびダウンロードファイルに含まれているコードは構造がWebチュートリアル掲載のものとは異なっている。具体的には、<core:Fragment>を使わずProductSimple.fragment.xml とProductExtended.fragment.xmlをApp.view.xmlへ直接取り込んだ形となっている。そしてこちらはエラーにならず、チュートリアルで解説している通りの結果が得られている。