Good practice

Good practice guides

To help organisations comply with the legislation we regulate, we provide information about good practice and how to apply it. We provide a lot of specialist good practice guidance which offers recommendations, advice and overviews. Although written mainly to assist companies, charities and other types of organisations, many of these notes will be of interest to individuals.

You can view the good practice guidance via the following links:

We provide information about how the Data Protection Act applies to references (including employment references), how you can understand the 'dos and don'ts' of electronic mail marketing campaigns and stay on the right side of the law and about taking photos in educational establishments.

As well as providing advice on data protection, we also help authorities to understand their obligations under the Freedom of Information Act and the Environmental Information Regulations.

In addition to providing advice and good practice guidelines, we are pleased to assist with any enquiries an organisation or individual may have concerning any of the legislation.

Whilst we are happy to provide general advice on the application of exemptions (or exceptions for the Environmental Information Regulations), in most cases we are not able to tell an organisation whether or not it should withhold requested information. This is because as the regulator of the legislation, we must remain impartial as we may be required to adjudicate on a related complaint. 

For more information and advice, please visit:

Relevant downloads


View the document library

System.Xml.Xsl.XsltException: Function 'sc:fld()' has failed. ---> System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.InvalidOperationException: Hashtable insert failed.  Load factor too high.
   at System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)
   at System.Collections.Hashtable.set_Item(Object key, Object value)
   at Sitecore.Data.Templates.Template.GetField(String fieldName)
   at Sitecore.Data.DataManager.GetTemplateField(String fieldName, Item item)
   at Sitecore.Data.DataManager.GetFieldID(String fieldName, Item item)
   at Sitecore.Collections.FieldCollection.GetFieldID(String fieldName)
   at Sitecore.Collections.FieldCollection.get_Item(String fieldName)
   at Sitecore.Data.Items.BaseItem.get_Item(String fieldName)
   at Sitecore.Xml.Xsl.XslHelper.GetFieldValue(String fieldName, XPathNodeIterator iterator, String subValue)
   at Sitecore.Xml.Xsl.XslHelper.fld(String sFieldName, XPathNodeIterator ni, String sSubValue)
   at Sitecore.Xml.Xsl.XslHelper.fld(String sFieldName, XPathNodeIterator ni)
   --- End of inner exception stack trace ---
   at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess)
   at System.Reflection.RuntimeMethodInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean verifyAccess)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.Reflection.MethodInfo.Invoke(Object obj, Object[] parameters)
   at System.Xml.Xsl.FuncExtension.Invoke(XsltContext xsltContext, Object[] args, XPathNavigator docContext)
   at System.Xml.XPath.XsltFunction.InvokeFunction(XPathNavigator qy, XPathNodeIterator iterator)
   --- End of inner exception stack trace ---
   at System.Xml.XPath.XsltFunction.InvokeFunction(XPathNavigator qy, XPathNodeIterator iterator)
   at System.Xml.XPath.XsltFunction.getValue(XPathNavigator qy, XPathNodeIterator iterator)
   at System.Xml.XPath.XPathNavigator.Evaluate(XPathExpression expr, XPathNodeIterator context)
   at System.Xml.Xsl.Processor.ValueOf(ActionFrame context, Int32 key)
   at System.Xml.Xsl.ValueOfAction.Execute(Processor processor, ActionFrame frame)
   at System.Xml.Xsl.ActionFrame.Execute(Processor processor)
   at System.Xml.Xsl.Processor.Execute()
   at System.Xml.Xsl.XslTransform.Transform(XPathNavigator input, XsltArgumentList args, TextWriter output, XmlResolver resolver)
   at Sitecore.Web.UI.WebControls.XslFile.DoRender(HtmlTextWriter output, Item item) Xsl file could not be processed: /xsl/ICOContentLevel.xslt