Monday, July 8, 2013

SharePoint 2010 People Picker Address Book Error - Namespace xsd not defined

Problem: You attempt to use a people picker control in SharePoint 2010 and click the little 'address book' button to find a user. You search for someone and find them (yay!) and click the OK button to add them and you get a giant error message. And then nothing. It doesn't copy the user you picked over to the People Picker or anything. When you give the error message to the admin (or you are the admin and you look up the correlation ID in the logs) then you get an error in the list saying "Namespace 'xsd' is not defined" in an XML error.

Cause: Customizations to SharePoint masterpage to make it use more recent web technologies like CSS3/HTML5 (via the X-UA-COMPATIBLE meta tag) OR your browser trying to force a square peg (IE8 stuff) into a round hole (IE9 or 10+ browser).

Sadly, if there are customizations to the masterpage to try to use HTML5 or CSS3 then you have to use javascript to fix it (google for that...I think Matt Oleson had something), use a different browser than IE9 or 10, or fix the masterpage to render the page in IE8 standards (re-setting the X-UA-COMPATIBLE to IE8 instead of IE9 or EDGE or anything else that might be there).

If, however, you have done no customizations of this modern sort in your environment and you are using IE9 or IE10 and you get this then your problem is a lack of compatibility view. You need to add your SharePoint site to your IE list of sites in the Tools -> Compatibility View Settings. Normally, Intranet sites should be in this list (like sites inside your company network) but if the site contains a period (.) then it wouldn't qualify as an "Intranet" site in this case. We used GPO (Group Policy Objects) to push this setting out to all computers in our environment to force IE to see our site in Compatibility View.