3

SiteEdit を使用してコンポーネント プレゼンテーションの一部を編集しようとすると、次のエラーが表示されます。

Sys.FormatException: コンポーネント xml スキーマから型情報を取得できませんでした。フィールド: cf_tcm:32-204267_title XPath: コンテンツ/カスタム:コンテンツ/カスタム:タイトル[1]

同じテンプレートを持つコンポーネントの一部が正常に動作するため、奇妙です (これらにはイメージ セットがありませんが、イメージ セットを持つコンポーネントは動作しません)。

これが私のCTのコードです:

<div class="column v-2 siteedit">
  <!-- TemplateBeginIf cond = "Component.thumbnail" -->
    <!-- TemplateBeginIf cond = "Component.image" -->
      <a href="@@Component.Fields.image@@" class="fb ajax">
    <!-- TemplateEndIf -->
    <img src="@@Component.Fields.thumbnail@@"  class="align-left"
         alt="@@thumbnail0.Metadata.alt@@" height="69" width="99"/>
    <!-- TemplateBeginIf cond = "Component.image" -->
      </a>
    <!-- TemplateEndIf -->
  <!-- TemplateEndIf -->    
  <h2>
    <tcdl:ComponentField name="title">@@Component.Fields.title@@</tcdl:ComponentField>
  </h2>
  <p>@@Component.Fields.summary@@</p>
</div>

(特定のフィールドに問題がないことを確認するために、他の編集可能なフィールドを削除しました)

何か案は?

更新
要求されたとおり、ここに私の (匿名化された) HTML があります。1 番目と 3 番目のコンポーネントに問題があり、中間のコンポーネントは問題ありません。

<div class="general-content columns-three">
    <div class="column v-2 siteedit" style="height: 209px; ">
        <!-- Start SiteEdit Component Presentation: {
            "ID" : "97829119-68f0-4e41-9862-b042d480cb71",
            "ComponentID" : "tcm:32-204859",
            "ComponentTemplateID" : "tcm:32-204536-32",
            "Version" : "2",
            "IsQueryBased" : false
        } -->
        <a href="http://REDACTED:84/_images/REDACTED.png?__Proxy=0" class="fb ajax" target="_self">
            <img src="/_images/REDACTED.gif" class="align-left" alt="REDACTED" height="69" width="99">
        </a>

        <h2>
            <span style="">
            <!-- Start SiteEdit Component Field: {
                "ID" : "cf_tcm:32-204267_title", 
                "XPath" : "tcm:Content/custom:Content/custom:title[1]", 
                "IsMultiValued" : false
            } -->REDACTED
            </span>
        </h2>
      <p>REDACTED</p>
    </div>      

    <div class="column v-2 siteedit" style="height: 209px; ">
        <!-- Start SiteEdit Component Presentation: {
            "ID" : "2933b5e0-2006-440d-bc03-2224650bdd7d",
            "ComponentID" : "tcm:32-204268",
            "ComponentTemplateID" : "tcm:32-204536-32",
            "Version" : "5",
            "IsQueryBased" : false
        } -->
        <h2> <span style="">
            <!-- Start SiteEdit Component Field: {
                "ID" : "cf_tcm:32-204268_title", 
                "XPath" : "tcm:Content/custom:Content/custom:title[1]", 
                "IsMultiValued" : false} -->REDACTED</span>
           </h2>
           <p>REDACTED</p>
    </div>      

    <div class="column v-2 siteedit" style="height: 209px; ">
        <!-- Start SiteEdit Component Presentation: {
            "ID" : "fac3c467-7c71-4be9-b319-8a35524ee172",
            "ComponentID" : "tcm:32-204860",
            "ComponentTemplateID" : "tcm:32-204536-32",
            "Version" : "2",
            "IsQueryBased" : false
        } -->
        <a href="http://REDACTED:84/_images/REDACTED.png?__Proxy=0" class="fb ajax" target="_self">
            <img src="/_images/REDACTED.gif" class="align-left" alt="REDACTED" height="69" width="99">
        </a>
        <h2> <span style="">
            <!-- Start SiteEdit Component Field: {
                "ID" : "cf_tcm:32-204269_title", 
                "XPath" : "tcm:Content/custom:Content/custom:title[1]", 
                "IsMultiValued" : false
            } -->REDACTED</span>
        </h2>
        <p>REDACTED</p>
    </div>      
</div>
4

1 に答える 1

4

SiteEdit 2009でページをロードするときに、「コンポーネントxmlスキーマからタイプ情報を取得できませんでした」というエラーメッセージが表示されたときに説明しました。

ユースケースはその質問とは異なる場合があります。製品は同じ理由で常にこれを示します。<!-- Start SiteEdit Component Field現在のコンポーネント(コマンドで識別される)でフィールド(コマンドで識別される)を見つけることができません<!-- Start SiteEdit Component Presentation

エラーメッセージが表示された場合:

cf_tcm:32-204267_title XPath:Content / custom:Content / custom:title [1]

コンポーネントには。tcm:32-204267という名前のフィールドがないようtitleです。

このような場合、SiteEditが最終的に処理するHTMLを確認すると、ステージング/プレビューサーバーが返すものが常に最も簡単になります。フィールドとそれを囲むコンポーネントプレゼンテーションを見つけて、titleコンポーネントプレゼンテーションに。という名前のフィールドがあることを確認しますtitle

「何が間違っているのか」に対するより直接的な回答が必要な場合は、関連するHTML-with-the-SiteEdit-コマンドを質問に追加してください。一致するように回答を更新します。


提供されたHTMLに基づいて更新

あなたが提供したコンポーネントとフィールドのIDを見ると:

  1. コンポーネント:tcm:32-204859フィールド:cf_tcm:32-204267_title
  2. コンポーネント:tcm:32-204268フィールド:cf_tcm:32-204268_title
  3. コンポーネント:tcm:32-204860フィールド:cf_tcm:32-204269_title

JSONのIDは、意味のない一意性を確保するためにSiteEditでのみ使用されます。ただし、この場合、フィールドIDは、フィールドがどのコンポーネントからのものであるかを示しているようです。

次にデータを詳しく見ると、コンポーネント2のフィールドが同じコンポーネントを指していることがわかります。コンポーネント1および3の場合、フィールドは実際には別のコンポーネントを指しています。この場合もID、Fieldコマンドのプロパティ自体は使用されません。しかし、機能するものと機能しないものの関係は、SiteEditが包含Component Presentationコマンドで示されたコンポーネントのスキーマをロードし、コマンドで示されたXPathでフィールドを見つけることができないという知識とかなりよく一致しているようComponent Fieldです。

#1と#3では、ページに通常のコンポーネントを配置しているが、そのコンポーネントにリンクされているマルチメディアコンポーネントのタイトルをレンダリングしていると思われます。#2では、ページに明示的に配置されているMMCのタイトルをレンダリングしている可能性があります。

于 2012-06-07T15:18:32.390 に答える