2013-01-23 14 views
9

W ćwiczeniu refaktorskim, nad którym pracujemy, musimy zmienić szablony stron dla wybranych stron internetowych. Większość strona dostać lokalnej i mają swoje szablony stron aktualizowana przez poniższy kod, ale za kilka otrzymujemy następujący błąd: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'. 

nie ma pola opis w naszym schemacie metadanych i TitleSEO, KeywordsSEO, DescriptionSEO, Omniture są opcjonalne pola, które nie są zmieniane przez kod.

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

Całkowicie nie na temat, ale gratuluję opublikowania 1000. pytania Tridiona na Stackoverflow! –

+0

To miłe pytanie, czy moglibyśmy zainteresować państwem zaangażowaniem się w konkretną propozycję [Area 51 Tridion] (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2). Zarejestruj się za pomocą tego samego konta SO, jeśli masz chwilę. –

+0

Dzięki sugestii Davida udało mi się usunąć opis z metadanych. Nowy błąd objawia się teraz. "Nazwa, Nazwa pliku musi być unikalna dla elementów typu: Strona w swojej Grupie Strukturalnej i jej Kontekście projektu Źródło lub źródła konfliktu tcm: 121: 3456-64". Sprawdziłem zarówno bieżącą przetwarzaną stronę, jak i stronę wymienioną w błędzie i obie mają unikalne nazwy i nazwy plików. Jakieś pomysły, które mogą być przyczyną problemu? – user1949001

Odpowiedz

14

Brzmi jak w pewnym momencie w przeszłości było to pole w widoku schematu metadanych o nazwie „opis” (co podejrzany został później zmieniony na to, co jest teraz „DescriptionSEO”). Te kilka stron, które powodują błąd, prawdopodobnie nie zostały zaktualizowane od czasu zmiany, a więc mają stare pole metadanych w ich pliku XML, stąd problem sprawdzania poprawności, gdy dochodzisz do zmiany Szablonu strony.

Jeśli to tylko kilka stron, po prostu otwórz strony, dodaj opis lub coś w inny sposób zmień, zapisz je, a następnie spróbuj jeszcze raz.

Jeśli jest ich więcej niż kilka, prawdopodobnie trzeba będzie programowo wykryć i usunąć istniejące dane.

+0

David, Dzięki twojej sugestii udało mi się usunąć opis z metadanych. Nowy błąd objawia się teraz. "Nazwa, Nazwa pliku musi być unikalna dla elementów typu: Strona w swojej Grupie Strukturalnej i jej Kontekście projektu Źródło lub źródła konfliktu tcm: 121: 3456-64". Sprawdziłem zarówno bieżącą przetwarzaną stronę, jak i stronę wymienioną w błędzie i obie mają unikalne nazwy i nazwy plików. Jakieś pomysły, które mogą być przyczyną problemu? – user1949001

4

Nie jestem pewien, której wersji SDL Tridion używasz, ale w niektórych wczesnych wersjach SDL Tridion 2011, jeśli metadane zostały wcześniej dodane do dowolnego obiektu, nie został on wyczyszczony przez zmianę schematu metadanych, aby był pusty obiekt. W związku z tym stwierdziłem, że musisz ustawić wartość metadanych na wartość NULL z kodem przed zapisaniem elementu. To może rozwiązać twój problem.

Powiązane problemy