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.
  • Hi Saurabh - can you share the filter and the response? – Dylan .. Mark Saunders Apr 17 '15 at 21:20
  • Don't you see a node formatted something like: tcmt:isRoot – Dylan .. Mark Saunders Apr 17 '15 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. – Saurabh Gangwar Apr 18 '15 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)? – Andrey Marchuk Apr 20 '15 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. – Saurabh Gangwar Apr 20 '15 at 9:51
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.
  • 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. – Saurabh Gangwar Apr 22 '15 at 17:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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