2013-01-23 11 views
9

Trên một bài tập tái cấu trúc mà chúng tôi đang thực hiện, chúng tôi phải thay đổi Mẫu trang cho các trang web được chọn. Hầu hết các trang có được bản địa hoá và có các mẫu trang của họ được cập nhật bởi các mã dưới đây nhưng đối với một vài chúng tôi nhận được lỗi sau:Lỗi cập nhật dịch vụ lõi tridion

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

Không có lĩnh vực mô tả trong sơ đồ siêu dữ liệu của chúng tôi và TitleSEO, KeywordsSEO, DescriptionSEO, Omniture đều các trường tùy chọn không được mã thay đổi.

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

Hoàn toàn không có chủ đề, nhưng xin chúc mừng bạn đã đăng câu hỏi Tridion thứ 1000 lên Stackoverflow! –

+0

Câu hỏi hay, chúng tôi có thể quan tâm đến bạn trong cam kết với [Đề xuất cụ thể theo Vùng 51 Tridion] không (http://area51.stackexchange.com/proposals/38335/tridion?referrer=gPujQMxthNCNn9xqeeO2NA2). Đăng ký bằng cùng một tài khoản SO nếu bạn có thời gian. –

+0

Nhờ đề xuất của David, tôi có thể xóa mô tả khỏi siêu dữ liệu. Một lỗi mới tự hiển thị ngay bây giờ. "Tên, Tên tệp phải là duy nhất cho các mục thuộc loại: Trang trong Nhóm cấu trúc của nó và bối cảnh Blueprint của nó. Nguồn hoặc nguồn xung đột tcm: 121: 3456-64". Tôi đã kiểm tra cả trang hiện tại đang được xử lý và trang được đề cập trong lỗi và cả hai đều có tên và tên tệp duy nhất. Bất kỳ ý tưởng nào có thể gây ra sự cố? – user1949001

Trả lời

14

Có vẻ như tại một số điểm trong quá khứ có một trường trong lược đồ siêu dữ liệu trang của bạn được gọi là "description" (mà tôi nghi ngờ sau này được thay đổi thành "Mô tả"). Một vài trang gây ra lỗi có thể không được cập nhật kể từ khi thay đổi và do đó có trường siêu dữ liệu cũ trong XML của chúng, do đó, vấn đề xác thực khi bạn đến để thay đổi Mẫu trang.

Nếu đó chỉ là một vài trang, chỉ cần mở trang, thêm một số mô tả hoặc thay đổi một cái gì đó, lưu chúng và sau đó thử lại mã của bạn.

Nếu quá một vài, có thể bạn sẽ cần phát hiện và xóa dữ liệu hiện có theo chương trình.

+0

David, Nhờ đề xuất của bạn, tôi có thể xóa mô tả khỏi siêu dữ liệu. Một lỗi mới tự hiển thị ngay bây giờ. "Tên, Tên tệp phải là duy nhất cho các mục thuộc loại: Trang trong Nhóm cấu trúc của nó và bối cảnh Blueprint của nó. Nguồn hoặc nguồn xung đột tcm: 121: 3456-64". Tôi đã kiểm tra cả trang hiện tại đang được xử lý và trang được đề cập trong lỗi và cả hai đều có tên và tên tệp duy nhất. Bất kỳ ý tưởng nào có thể gây ra sự cố? – user1949001

4

Tôi không chắc bạn đang sử dụng phiên bản nào của SDL Tridion, nhưng trong một số phiên bản đầu của SDL Tridion 2011, nếu siêu dữ liệu trước đó đã được thêm vào bất kỳ đối tượng nào, nó không bị xóa bằng cách thay đổi Lược đồ siêu dữ liệu. đối tượng. Như vậy, tôi đã thấy rằng bạn phải đặt giá trị Siêu dữ liệu thành NULL bằng mã trước khi lưu mục. Điều này có thể giải quyết vấn đề của bạn.