none
SP2010 SP1 + IE9 - Namespace prefix 'xsd' is not defined

    General discussion

  • Hi,

    There is a thread about this issue but is marked as answered and I still have the problem.

    To reproduce edit a list item with a people editor field using IE9 and a masterpage with meta tag <meta http-equiv="X-UA-Compatible" content="IE=Edge" />

    This post has all the details and one of comments points to the method Microsoft.SharePoint.WebControls.EntityEditor.ParseSpanData(String spans)

    Can someone please confirm if this is a SharePoint bug?

    Thanks.

     

     


    • Edited by shaube Thursday, December 15, 2011 12:17 PM
    Thursday, December 15, 2011 12:15 PM

All replies

  • I am having the same issue when users try to subscribe to alerts

    Any one have a fix?

    Wednesday, February 8, 2012 4:12 PM
  • GGratto,

    I am having the same problem, only when assigning users to a SharePoint security group.  Everything works fine until you click "OK" even the name lookup...

    - Matt


    Matt Olson, MS Content Development Specialist MCITP, MCTS

    Wednesday, February 8, 2012 6:21 PM
  • In this thread http://social.technet.microsoft.com/Forums/en-US/sharepoint2010general/thread/90b3835c-6754-4bb6-9fd4-b74f16f236ff 

    They are saying to work around this by going back to the original settings in the master pages:

    <meta http-equiv="X-UA-Compatible" content="IE=8"/>

    If you changed the master page to enable the CSS and HTML capabilites of IE9 by setting: 

    <meta http-equiv="X-UA-Compatible" content="IE=9"/>

    We have made the change above to enable the use of CSS3 and HTML5 on in sharepoint and it looks real nice, but lots of things that do not work with IE9, so now I have to try and explian to those above me that it is a bug in what? Sharepoint or IE9? And then we remove the design that the comapny wants to have on its web pages, because Microsofts web browser and Microsofts Portal do not work correctly together?

     I just want to bang my head on my desk.

    Wednesday, February 8, 2012 10:59 PM
  • This is a compatibility issue with SharePoint and IE9.  MS would probably say that this is "intended" since all of the OOB master pages contain the "IE=8" value in their meta tag.  The workaround is to hack or override certain javascript functions in core.js, form.js and others.

    It is broken because SharePoint's javascript libraries take alot of advantage of "DOM Expandos" and other features which were an IE-Specific feature available from IE6 - IE8 (removed from IE9) and so you have to be in IE8 compatibility mode to use those javascript functions without error. 

    I do not have a specific solution as I am working on the same problem for my company's intranet, as well, but that is the path you need to look at.

    Good luck!

    - Matt


    Matt Olson, MS Content Development Specialist MCITP, MCTS

    Tuesday, March 13, 2012 6:02 PM
  • This really is one of the more vexing issues of upgrading the branding/master page of a SharePoint site. Please try this solution:

    I created a javascript file called entityeditor.ie9fix.js, added the javascript code that will follow, and saved it in /layouts/1033.

    In my master page I added

    <script type="text/javascript" src="/_layouts/1033/entityeditor.ie9fix.js"></script>

    to the very BOTTOM of the page. For some reason using the usual tricks to get it to load after the original entityeditor.js from SharePoint did not work.

    Inside the custom javascript is an override of a SharePoint function and a helper function:

    function ConvertEntityToSpan(ctx, entity)
    {ULSGjk:;
       
    if(matches[ctx]==null)
            matches
    [ctx]=new Array();
       
    var key=entity.getAttribute("Key");
       
    var displayText=entity.getAttribute("DisplayText");
       
    var isResolved=entity.getAttribute("IsResolved");
       
    var description=entity.getAttribute("Description");
       
    var style='ms-entity-unresolved';
       
    if(isResolved=='True')
            style
    ='ms-entity-resolved';
       
    var spandata="<span id='span"+STSHtmlEncode(key)+"' isContentType='true' tabindex='-1' class='"+style+"' ";
       
    if (browseris.ie8standard)
            spandata
    +="onmouseover='this.contentEditable=false;' onmouseout='this.contentEditable=true;' contentEditable='true' ";
       
    else
            spandata
    +="contentEditable='false' ";
        spandata
    +="title='"+STSHtmlEncode(description)+"'>"
        spandata
    +="<div style='display:none;' id='divEntityData' ";
        spandata
    +="key='"+STSHtmlEncode(key)+"' displaytext='"+STSHtmlEncode(displayText)+"' isresolved='"+STSHtmlEncode(isResolved)+"' ";
        spandata
    +="description='"+STSHtmlEncode(description)+"'>";
       
    var multipleMatches=EntityEditor_SelectSingleNode(entity, "MultipleMatches");
        matches
    [ctx][key]=multipleMatches;
       
    var extraData=EntityEditor_SelectSingleNode(entity, "ExtraData");
       
    if(extraData)
       
    {
           
    var data;
           
    if(extraData.firstChild)
                data
    =extraData.firstChild.xml;
           
    if(!data) data=extraData.innerXml || extraData.innerHTML;
           
    if(!data && document.implementation && document.implementation.createDocument)
           
    {
               
    var serializer=new XMLSerializer();
                data
    =serializer.serializeToString(extraData.firstChild);

                       
    // **** CUSTOM FUNCTION ****
                data
    = fixDataInIE9(data);
           
    }
           
    if(!data) data='';
            spandata
    +="<div data='"+STSHtmlEncode(data)+"'></div>";
       
    }
       
    else
       
    {
            spandata
    +="<div data=''></div>";
       
    }
        spandata
    +="</div>";
       
    if(PreferContentEditableDiv(ctx))
       
    {
           
    if(browseris.safari)
           
    {
                spandata
    +="<span id='content' tabindex='-1' contenteditable='false'  onmousedown='onMouseDownRw(event);' onContextMenu='onContextMenuSpnRw(event,ctx);' >";
           
    }
           
    else
           
    {
                spandata
    +="<span id='content' tabindex='-1' contenteditable onmousedown='onMouseDownRw(event);' onContextMenu='onContextMenuSpnRw(event,ctx);' >";
           
    }
       
    }
       
    else
       
    {
            spandata
    +="<span id='content' tabindex='-1' contenteditable onmousedown='onMouseDownRw(event);' onContextMenu='onContextMenuSpnRw(event,ctx);' >";
       
    }
       
    if (browseris.ie8standard)
            spandata
    +="\r";
       
    if(displayText !='')
            spandata
    +=STSHtmlEncode(displayText);
       
    else
            spandata
    +=STSHtmlEncode(key);
       
    if (browseris.ie8standard)
            spandata
    +="\r</span></span>\r";
       
    else
            spandata
    +="</span></span>";
       
    return spandata;
    }

    // **** CUSTOM FUNCTION ****
    function fixDataInIE9(data)
    {
       
    if(data.indexOf('<ArrayOfDictionaryEntry>') >= 0)
       
    {
            data
    = data.replace('<ArrayOfDictionaryEntry>', '<ArrayOfDictionaryEntry xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema-instance\">');
       
    }
       
    return data;
    }

    After setting that up and publishing the master page I reloaded my site and had no problems saving people from the people picker. Heck of a lot easier than trying to get everyone to use firefox, or some kind of plugin.

    PS: I marked my code with // ** CUSTOM FUNCTION **


    Matt Olson, MS Content Development Specialist MCITP, MCTS


    • Edited by M_Olson Tuesday, April 17, 2012 7:29 PM fixed script tag
    Tuesday, April 17, 2012 7:10 PM
  • Seeing as the issue is one when you actually save one of the Edit Properties Pages and doesn't appear to be present anytime else, I simply created a simple Custom Control which checked to see if the form was in Edit Mode or New Mode and if it was I switched the meta tag to say IE-8, otherwise I left it on IE-9.  Pretty simple, works a treat.

    Cheers

    Dave Mc

    Sunday, April 22, 2012 11:54 AM
  • Seeing as the issue is one when you actually save one of the Edit Properties Pages and doesn't appear to be present anytime else, I simply created a simple Custom Control which checked to see if the form was in Edit Mode or New Mode and if it was I switched the meta tag to say IE-8, otherwise I left it on IE-9.  Pretty simple, works a treat.

    Cheers

    Dave Mc


    Does your control use server-side code to do this?  Or javascript?

    Matt Olson, MS Content Development Specialist MCITP, MCTS

    Monday, April 23, 2012 5:52 PM
  • sharepoint 2010 has some limitations with IE-9 

    for this issue set the browser in IE-9 compatibility mode 

    for support matrix refer Microsoft

    Monday, April 23, 2012 6:24 PM
  • THANKS MATT!!!

    This worked for me. I surely do appreciate you sharing your expertise!

    Regards,

    P. Harstvedt

    Friday, May 4, 2012 4:10 PM
  • P,

    Glad it worked out for you!  If you wouldn't mind voting for my response since this discussion isn't a question?

    Thanks,

    - Matt


    Matt Olson, MS Content Development Specialist MCITP, MCTS

    Friday, May 4, 2012 4:18 PM
  • Thanks for the answer. I tried voting it as helpful but got an unexpected error...
    Thursday, October 18, 2012 7:09 AM
  • Thanks Matt, I have been working around this issue for quite some time and glad that you posted this nice work around.  

    MSNGN: Smart Simple Solutions http://www.msngn.com

    Monday, May 27, 2013 4:59 PM
  • Thanks so much for this. It was my customized master page that was causing the issue
    Wednesday, October 16, 2013 7:27 PM
  • I'm trying to find if this issue is resolved in a CU or service pack 2

    but i can not it "on paper" that is has been resolved in a specific update.

    Anyone knows perhaps where this has been solved with or not?

    Monday, November 30, 2015 10:48 AM