3

I am building a category/Keyword hierarchy xml file on publishing a page. And I don't want to loop through the categories and keywords to avoid performance issue.

So, I am using Repository.GetTaxonomiesOwl() in TOM.NET for a repository to get the Taxonomies data in OWL format. and applying xslt on this to get the xml.

Repository.GetTaxonomiesOwl() returns all the taxonomies (Local + Shared) for that Repository and doesn't have any info about taxonomy owning repository.

The returned element for a keyword looks like below: Level1 - Test Keyword1 Level1 - Test Keyword1 false true

My requirement is to get only local taxonomies for the repository.

My questions are, is there any way to :

  1. Filter the taxonomy results, which are local to the repository(Publication)?
  2. Include owning repository attribute in the results? so that I can filter the results based on that attribute.
5
  • Hi Saurabh - can you share the filter and the response? Apr 17, 2015 at 21:20
  • Don't you see a node formatted something like: tcmt:isRoot Apr 17, 2015 at 21:45
  • Yeah Mark, But the tcmt:isRoot specifies if the keyword is a root keyword in the keyword hierarchy within a category, as a keyword can have keywords as children. It doesn't say anything about the owning repository of the keyword. Apr 18, 2015 at 16:06
  • TaxonomiesOwl is quite heavy filter is the any reason why you don't use Repository.GetListTaxonomies(TaxonomiesFilter filter) or Repository.GetTaxonomies(TaxonomiesFilter filter)? Apr 20, 2015 at 7:34
  • I want to fetch one xml from tridion, which contains categories and keywords. So that i can apply a xslt to produce another xml file. Repository.GetListTaxonomies(TaxonomiesFilter filter) returns only categories. So I am not using it. Apr 20, 2015 at 9:51

1 Answer 1

3

You can do what you want using a two-step process:

  1. Select all local Categories in a given Repository (e.g. using Repository.GetListCategories() and a bit of LINQ to filter out local ones).
  2. Call Repository.GetTaxonomiesOwl(TaxonomiesOwlFilter) overload to pass in a TaxonomiesOwlFilter with property RootCategories set to the Categories you selected in step 1.
1
  • Thanks for the answer Rick. But I need localize info for both categories and keywords(inside the categories) as well and it seems GetTaxonomiesOwl doesn't return that info. Apr 22, 2015 at 17:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.