2013-01-23 10 views
9

私たちが取り組んでいるリファクタリングの練習では、特定のWebサイトのページテンプレートを変更する必要があります。ほとんどのページがローカライズされた取得し、そのページテンプレートは、以下のコードではなく、我々は次のエラーを取得するいくつかのために更新があります。Tridion Core Service Update Error

XML validation error. Reason: The element 'Metadata' in namespace 'uuid:940d95aa-fcce-481c-8de5-c61d06c74f46' has invalid child element 'description' in namespace 'uuid:940d95aa-fcce-481c-8de5-c61d06c74f46'. 

List of possible elements expected: 'TitleSEO, KeywordsSEO, DescriptionSEO, omniture' in namespace 'uuid:940d95aa-fcce-481c-8de5-c61d06c74f46'. 

私たちのメタデータスキーマとTitleSEO、KeywordsSEO、DescriptionSEO、オムニチュアには説明フィールドがあり、すべてされませんオプションフィールドはコードによって変更されていません。

try 
{ 
    pData = client.Read(page.Attribute("ID").Value, null) as PageData; 
    //Localize Page 
    if (!(bool)pData.BluePrintInfo.IsLocalized) 
    { 
     client.Localize(pData.Id, new ReadOptions()); 
     if (dTemplateIDs.ContainsKey(pData.PageTemplate.IdRef.ToString())) 
     { 
      pData.IsPageTemplateInherited = false; 
      pData.PageTemplate.IdRef = dTemplateIDs[pData.PageTemplate.IdRef]; 
      client.Update(pData, new ReadOptions()); 
     } 
    } 
} 
catch (Exception ex) 
{ 
    Console.WriteLine("Error Inner " + ex.Message); 
} 
+4

トピックから完全に離れていますが、Stackoverflowの1000番目のTridionに関する質問を投稿してよろしくお願いします。 –

+0

ニースの質問ですが、[Area 51 Tridion特有の提案](http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2)に関心をお寄せください。同じSOアカウントでサインアップしてください。 –

+0

Davidの提案により、私はメタデータから説明を削除することができました。新しいエラーが現れます。 "名前、ファイル名は、構造グループ内のページと青写真コンテキストのタイプのアイテムに対して一意でなければなりません。ソースまたはソースの矛盾tcm:121:3456-64"。私は処理中の現在のページとエラーで言及されたページの両方をチェックし、両方が一意の名前とファイル名を持っています。何が問題を引き起こしているのでしょうか? – user1949001

答えて

14

過去のある時点でのフィールドは、(私が後で今「DescriptionSEO」であるものに変更された疑いがある)「説明」と呼ばれるページのメタデータスキーマにあったようですね。このエラーを引き起こすこれらのいくつかのページは、おそらく変更後に更新されていない可能性があります。そのため、XMLに古いメタデータフィールドがあるため、ページテンプレートを変更する際の検証の問題があります。

ほんの数ページの場合は、ページを開いたり、説明を追加したり、何かを変更したりして保存してから、もう一度コードを試してください。

多ければ、おそらくプログラムで既存のデータを検出して削除する必要があります。

+0

David、あなたの提案のおかげで、私はメタデータから説明を削除することができました。新しいエラーが現れます。 "名前、ファイル名は、構造グループ内のページと青写真コンテキストのタイプのアイテムに対して一意でなければなりません。ソースまたはソースの矛盾tcm:121:3456-64"。私は処理中の現在のページとエラーで言及されたページの両方をチェックし、両方が一意の名前とファイル名を持っています。何が問題を引き起こしているのでしょうか? – user1949001

4

使用しているSDL Tridionのバージョンがわかりませんが、以前のバージョンのSDL Tridion 2011では、メタデータが以前にオブジェクトに追加されていた場合、空になるようにメタデータスキーマを変更してクリアされませんでしたオブジェクト。そのため、項目を保存する前に、コードでMetadata値をNULLに設定しなければならないことがわかりました。これはあなたの問題を解決するかもしれません。

関連する問題