6

私はTridionコアサービスにまったく慣れていないので、これは簡単な質問かもしれません。パブリケーションIDを渡してすべてのメタデータスキーマを取得したい。誰かがこれをしたことがあるなら、返信してください。

前もって感謝します

4

2 に答える 2

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);

次に、上記のxmlからIDを取得した後、各スキーマオブジェクトを作成し、それがメタデータスキーマであるかどうかを確認する必要があります。

于 2012-08-23T12:37:36.863 に答える
10

さて、ここに例があります。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-23T12:50:34.097 に答える