私はTridionコアサービスにまったく慣れていないので、これは簡単な質問かもしれません。パブリケーションIDを渡してすべてのメタデータスキーマを取得したい。誰かがこれをしたことがあるなら、返信してください。
前もって感謝します
私はTridionコアサービスにまったく慣れていないので、これは簡単な質問かもしれません。パブリケーションIDを渡してすべてのメタデータスキーマを取得したい。誰かがこれをしたことがあるなら、返信してください。
前もって感謝します
[ここ][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を取得した後、各スキーマオブジェクトを作成し、それがメタデータスキーマであるかどうかを確認する必要があります。
さて、ここに例があります。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);
}
}