我是Tridion核心服务的新手,所以这可能是一个简单的问题。我想通过传递一个发布ID来获取所有元数据模式。如果有人这样做过,请回复。
提前感谢
发布于 2012-08-23 20:50:34
好的,这是一个例子。GetCoreServiceClient返回一个已经为正确的用户调用了Impersonate的SessionAwareCoreServiceClient。
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);
}
}发布于 2012-08-23 20:37:37
我会建议你从这里看示例代码(需要登录),并首先尝试你自己。
http://sdllivecontent.sdl.com/LiveContent/content/en-US/SDL_Tridion_2011_SPONE/concept_95D8F90693834AF089FEBCDC0347D04D
或者试试这个。
RepositoryItemsFilterData filterData = new RepositoryItemsFilterData();
filterData.ItemTypes = new[]
{
ItemType.Schema
};
filterData.Recursive = true;
XElement resultXml = client.GetListXml(publicationId, filterData);然后,您需要在从上面的xml中获取is后创建每个schema对象,并检查它是否是元数据schema。
https://stackoverflow.com/questions/12091432
复制相似问题