获取出版物的所有元数据模式

SDL*_*per 6 tridion tridion-2011

我对Tridion核心服务很陌生,所以这可能是一个简单的问题.我希望通过传递发布ID来获取所有元数据模式.如果有人做过这个,请回复.

提前致谢

vik*_*mar 10

我建议你看一下[这里] [1]的示例代码(需要登录)并先尝试自己.

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

或试试这个.

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

然后,您需要在从上面的xml获取ID之后创建每个模式对象,并检查它是否是元数据模式.


Pet*_*aer 10

好的,这是一个例子.GetCoreServiceClient返回一个SessionAwareCoreServiceClient,其中已经为正确的用户调用了Impersonate.

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);
    }
}
Run Code Online (Sandbox Code Playgroud)