2013-01-23 4 views
9

Bei einer Refactoring-Übung, an der wir gerade arbeiten, müssen wir Seitenvorlagen für ausgewählte Websites ändern. Die meisten Seite lokalisierte erhalten und ihre Seitenvorlagen durch den Code unten aktualisiert haben, aber für ein paar wir die folgende Fehlermeldung erhalten:Tridion Core Service Update-Fehler

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'. 

Es gibt keine Beschreibung Feld in unserem Metadatenschema und TitleSEO, KeywordsSEO, DescriptionSEO, omniture alle sind optionale Felder, die nicht durch den Code geändert werden.

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

Völlig neben dem Thema, aber herzlichen Glückwunsch zum Posten der 1000. Tridion Frage auf Stackoverflow! –

+0

Schöne Frage, könnten wir Sie Interesse an der [Area 51 Tridion spezifischen Vorschlag] (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2) interessieren. Melden Sie sich mit dem gleichen SO-Konto an, wenn Sie einen Moment Zeit haben. –

+0

Dank Davids Vorschlag konnte ich die Beschreibung aus den Metadaten entfernen. Ein neuer Fehler manifestiert sich jetzt. "Name, Dateiname muss für Elemente vom Typ eindeutig sein: Seite innerhalb ihrer Strukturgruppe und ihres Blueprintkontexts. Quelle oder Konfliktquellen tcm: 121: 3456-64". Ich überprüfte sowohl die aktuelle Seite, die verarbeitet wird, als auch die Seite, die in dem Fehler erwähnt wird, und beide haben eindeutige Namen und Dateinamen. Irgendwelche Ideen, was das Problem verursachen könnte? – user1949001

Antwort

14

Es klingt wie an einem gewissen Punkt in der Vergangenheit ein Feld in Ihrer Seite Metadatenschema namens „description“ war (was ich später geändert wurde vermuten, was jetzt „DescriptionSEO“). Diese wenigen Seiten, die den Fehler verursacht haben, wurden wahrscheinlich seit der Änderung nicht aktualisiert. Dies gilt auch für das alte Metadatenfeld in ihrem XML-Code. Daher ist das Validierungsproblem beim Ändern der Seitenvorlage zu beachten.

Wenn es nur ein paar Seiten sind, öffnen Sie einfach die Seiten, fügen Sie eine Beschreibung hinzu oder ändern Sie etwas, speichern Sie sie und versuchen Sie es dann erneut.

Wenn es mehr als ein paar ist, müssen Sie die vorhandenen Daten wahrscheinlich programmatisch erkennen und entfernen.

+0

David, Dank deines Vorschlags konnte ich die Beschreibung aus den Metadaten entfernen. Ein neuer Fehler manifestiert sich jetzt. "Name, Dateiname muss für Elemente vom Typ eindeutig sein: Seite innerhalb ihrer Strukturgruppe und ihres Blueprintkontexts. Quelle oder Konfliktquellen tcm: 121: 3456-64". Ich überprüfte sowohl die aktuelle Seite, die verarbeitet wird, als auch die Seite, die in dem Fehler erwähnt wird, und beide haben eindeutige Namen und Dateinamen. Irgendwelche Ideen, was das Problem verursachen könnte? – user1949001

4

Ich bin mir nicht sicher, welche Version von SDL Tridion Sie verwenden, aber in einigen frühen Versionen von SDL Tridion 2011, wenn Metadata zuvor zu einem Objekt hinzugefügt wurde, wurde es nicht durch Ändern des Metadatenschemas gelöscht das Objekt. Daher habe ich festgestellt, dass Sie den Metadatenwert vor dem Speichern des Elements mit Code auf NULL setzen müssen. Dies kann Ihr Problem lösen.