9

OrganizationalItemItemsFilterDataフィルターのBasedOnSchemasオプションの目的を理解しようとしています。

ドキュメントには、「指定されたスキーマを使用しているアイテムのみを返すようにBasedOnSchemas条件を取得または設定する」と明記されています。したがって、特定のスキーマのコンポーネントのみを取得できるはずです。

これが私のコードです:

LinkToSchemaData[] schemaLinks = new[] { 
        new LinkToSchemaData { IdRef = "tcm:113-362325-8" } 
    };

OrganizationalItemItemsFilterData filter = 
    new OrganizationalItemItemsFilterData();

filter.BaseColumns = ListBaseColumns.Extended;
filter.ItemTypes = new ItemType[] { ItemType.Component };
filter.Recursive = true;
filter.BasedOnSchemas = schemaLinks;

XElement items = client.GetListXml("tcm:113-14192-2", filter);

ただし、 XElementitemsには、スキーマtcm:113-362325-8のコンポーネントだけでなく、複数のタイプのコンポーネントが含まれます。

スキーマに基づくコンポーネントのみを取得するにはどうすればよいですか?

4

1 に答える 1

11

BasedOnSchemasとの両方の使用Recursive = trueはサポートされていません。再帰性を削除すると、スキーマフィルターが機能することがわかります。

特定のスキーマのすべてのコンポーネントの「再帰的」リストを取得する場合は、スキーマでWhereUsedを実行することを検討してください。

GetListXml("tcm:5-59-8", new UsingItemsFilterData())
于 2012-08-28T08:18:57.537 に答える