2012-08-23 15 views
6

Tôi khá mới đối với dịch vụ cốt lõi Tridion vì vậy đây có thể là một câu hỏi đơn giản. Tôi muốn nhận tất cả các lược đồ siêu dữ liệu bằng cách gửi ID xuất bản. Nếu một số người đã từng làm điều này, vui lòng trả lời.Nhận tất cả các lược đồ siêu dữ liệu của ấn bản

Cảm ơn trước

+0

Bạn đã thử những gì? http://mattgemmell.com/2008/12/08/what-have-you-tried/ Có rất nhiều ví dụ về việc sử dụng Dịch vụ cốt lõi để truy xuất các mục từ Tridion cả trên Stack Overflow và trên interwebs nói chung. Hãy thử một số người trong số họ và xem cách họ ánh xạ tới nhu cầu của bạn. Nếu bạn gặp khó khăn khi làm điều đó, chúng tôi sẽ cố gắng hết sức để giúp bạn "cởi trói". –

Trả lời

10

Được rồi, đây là một ví dụ. GetCoreServiceClient trả về một SessionAwareCoreServiceClient với Impersonate đã được gọi cho đúng người dùng.

public static IdentifiableObjectData[] GetMetadataSchemas(string publicationId) 
{ 
    using (var client = GetCoreServiceClient()) 
    { 
     var filter = new RepositoryItemsFilterData 
     { 
      SchemaPurposes = new[] { SchemaPurpose.Metadata }, 
      Recursive = true, 
      ShowNewItems = false, 
      ItemTypes = new[] { ItemType.Schema } 
     }; 

     return client.GetList(publicationId, filter); 
    } 
} 
10

Tôi sẽ đề nghị bạn xem mã mẫu từ [đây] [1] (Yêu cầu đăng nhập) và tự thử trước.

[http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_95D8F90693834AF089FEBCDC0347D04D][1]

hoặc thử này.

RepositoryItemsFilterData filterData = new RepositoryItemsFilterData(); 
filterData.ItemTypes = new[] 
         { 
         ItemType.Schema 
         }; 
filterData.Recursive = true; 
XElement resultXml = client.GetListXml(publicationId, filterData); 

Và sau đó bạn cần phải tạo từng đối tượng lược đồ sau khi nhận id từ trên xml và kiểm tra xem đó có phải là lược đồ siêu dữ liệu hay không.