Authentic View にて要素を追加する

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SPS ファイル: コンテンツ > テキストとして XML コンテンツを挿入 >

Authentic View にて要素を追加する

デザインにて要素を作成する場合、要素がどのように作成されたかにより、Authentic View にてタブキーが押下された時や追加... をクリックするといった、ユーザーのアクションに対するレスポンスが決定されます。ユーザーの手で要素が追加された時に、どの要素が Authentic View にて作成されるかがここでは重要になります。例えば、(要素サイドバーにある要素の追加アイコンをクリックすることで)ユーザーにより要素が挿入された時、どの子要素が自動的に作成されるのかを指定することになります。

 

Authentic View は、そこで指定されているスキーマの構造に従うという点に注意する必要があります。Authentic View にてスキーマの構造が正確に実装されることを保証するため、デザインを行う際には、以下に示されるデザインのルールについて留意しておく必要があります。


 

明確なコンテンツモデル

コンテンツモデルを曖昧で無いものにするには、(選択やグループ、代替を持たない)子要素のシーケンス数を(maxOccurs=1 により)1に抑えたものにする必要があります。この場合、要素が追加される際に、その子要素のシーケンスも一意に確定するので、自動的に追加されることになります。以下のスクリーンショットでは、3つある子要素は全て必須となっており、一度だけ出現することが許されています。

 

add_elm_simpleseq

 

parent 要素が Authentic View に挿入されると、その子要素も自動的に挿入されます(以下のスクリーンショットを参照)。タブキーを押下することで、シーケンス内の次要素に移動することができます。

 

av_add_elm_simpleseq

 

e2 要素が必須では無い場合、parent 要素が Authentic View に挿入されると、e1 ならびに e3 が自動的に挿入され、要素 e2 ならびに e3 が自動的に挿入されます。e2 が要素サイドバーに表示され、必要な場合は挿入することもできます(以下のスクリーンショットを参照)。e1 内にてタブキーを押下することで e3 へ移動します。

 

av_add_elm_simpleseq_optional

 

上記のような状況だけが、曖昧性が無いと Authentic View により判断されます。それ以外の場合は全て、Authentic View には曖昧だと判断され、目的の要素が表示され、選択を促されます。結果としてデザインは、以下に記されるように、単純なルールに従うことになります。

 

曖昧なコンテンツモデル

XML ドキュメントの編集を行いつつ、Authentic View にて要素を効率的に表示するため、SPS は以下のルールに従う必要があります。

 

子要素の順序はデザインに配置された通りに表示される。
Authentic View における兄弟要素間の曖昧さを回避するため、目的の順序で必要な全ての子要素をデザインドキュメント内、かつ単一の親ノード内に配置する必要があります。兄弟間のリレーションシップを Authentic View でも保持するには、ある親要素内にある各子要素を、複数のインスタンス内に配置しないようにしてください。

 

これら2つのルールを以下の例で説明します。

 

必須子要素のシーケンスから構成される parent 要素のコンテンツモデルを考えます。このコンテンツモデルは上記の曖昧さのないコンテンツモデルと、シーケンスが必須ではないという点を除いて同じものです。この違いのためにシーケンスが出現するかは決定されず、コンテンツモデルは曖昧なものとして判断されます。以下のスクリーンショットに示されるようにドキュメントをデザインした場合、Authentic View にて曖昧さが発生することになります。

 

add_elm_simpleseq

 

parent 要素は Authentic View にて(シーケンスが必須では無いため)以下のように表示されます。

 

av_add_elm_ambiguous1

 

... を追加ボタンをクリックすると、子要素を含むメニューが表示されます。

 

av_add_elm_ambiguous2

 

これら要素のどれかを選択することで、その要素が挿入されますが、Authentic View によりシーケンスの曖昧さを解決することができないため、残り2つの要素が挿入されることはありません。

 

av_add_elm_ambiguous3

 

コンテンツモデルのデザインを(上のルールに従いつつ)正しく行うには、目的のノードを単一ノード内に正しい順序で明示的に作成します。デザインドキュメントを以下のように変更してください:

 

add_elm_ambiguous_design1

 

3つある子要素が全て単一の親ノード内部に配置されていることに注目してください。上のデザインは、Authentic View にて以下のように表示されます :

 

av_add_elm_ambiguous_design1

 

Authentic View ユーザーが「...を追加」をクリックすることで、対応する要素とそのコンテンツが挿入されます。

 

メモ:

 

ある要素が複数回出現することが許されている場合、Authentic View にて表示されている出現回数が、スキーマにて許可されている最大出現回数 (maxOccurs) に達するまで、サイドバーに許可されている要素が表示され続けます。
異なる親ノード内にある各子要素が作成された場合、親子のリレーションシップは他の要素からは独立したものとなるだけでなく、各子要素の位置を特定するため親ノードを行き来する必要が生じるため、処理時間も多くなります。

 

add_elm_ambiguous_wrong

 

 

 


(C) 2019 Altova GmbH