mo.notono.us

Wednesday, December 02, 2009

SharePoint 2010: Managed Metadata fields and the TaxonomyHiddenList

Notes to self and others:

When you create a Managed Metadata (aka Taxonomy) field in a SharePoint 2010 list or library, the field’s schema will look something like this:

<field id="{f6d2b908-4ed4-42f8-a491-e1177ed57596}" version="1"
rowordinal="0" colname="int3" name="Tags" staticname="Tags"
sourceid="{58701f50-42a0-4c3d-8fdd-fb6f3a798bc4}"
enforceuniquevalues="FALSE" required="FALSE"
showfield="Term1033"
webid="956683ae-54b0-46c4-8fe6-8e14309b6fcd"
list="{4c231f71-5ed3-49aa-a62f-3fbb9a900bd0}"
displayname="Tags" type="TaxonomyFieldType">

<default>1;#A|6832dce7-bd84-4afc-8311-d5a1367dc282</default> <customization> <arrayofproperty> <property> <name>SspId</name> <value xmlns:p4="x-instance" p4:type="q1:string"
xmlns:q1="x">5dc61acc-dfa4-41dd-aa85-dd71d054ab1f</value> </property> <property> <name>GroupId</name> </property> ...

(field definition and namespaces shortened for readability)

Some of the notable attributes are:

  • Type – obvious
  • WebId - The current list’s web
  • SourceID - The current list’s id
  • List - The ID of a “TaxonomyHiddenList” which resides in the current web, but as the name implies, is hidden.
  • ShowField - the field in the TaxonomyHiddenList to display – looks like it’s locale enabled.
  • The SspId property is also crucial – it is the TermStore ID used to access the TermSet – more on that in another blog post…

The TaxonomyHiddenList’s schema looks like most lists’ schema – HUGE.  Some of the interesting fields are:

  • IdForTerm - in the case of the default value above (A) this field’s value matches the GUID 6832dce7-bd84-4afc-8311-d5a1367dc282
  • IdForTermSet - this appears to be the term set id from the MM data store – I have another column in my list which is not tied to a centrally managed metadata store – its value shows as 0000….-00… etc.
  • IdForTermStore – in my instance, this GUID is the same for both the managed and non-managed metadata field – matches the SspId above.

Labels: , ,

4 Comments:

  • Cool blog check mines out at http://royalsinterestingblogs.blogspot.com

    By Anonymous Anonymous, at Thursday, December 10, 2009 12:22:00 AM  

  • Hi,

    This is great information, thanks. Have you tried creating a TaxonomyFieldType field declaratively (ie. using CAML definition and provisioning through a feature)? Not sure if it's possible, but I'd like to give it a try. I'm just not sure where I'd be able to find the TaxonomyHiddenList ID and the Term Store ID (as well as some of the other values). Do you have any suggestions?

    Amy

    By Anonymous Anonymous, at Tuesday, January 19, 2010 9:14:00 AM  

  • Hi Amy,

    No I have not tried that - I had a task to do and accomplished it, more or less...

    I have not been looking at SP 2010 for a few weeks now.

    By Blogger Oskar Austegard, at Tuesday, January 19, 2010 2:35:00 PM  

  • If you are intersted to test the SharePoint 2010 Term Store with pre-defined industry-specific taxonomies and managed meta data, just download samples here for free:

    http://www.layer2.de/en/products/Pages/SharePoint-2010-Taxonomy-Metadata.aspx

    You can make a “semantic jump start” with this ;-)

    By Blogger SharePointFrank, at Tuesday, March 02, 2010 6:52:00 AM  

Post a Comment

<< Home