6

I have a schema as follows:

enter image description here

As you can see it has some embedded fields which are optional (Select List, for example). Some fields inside those embedded fields are mandatory.

The component you are looking at, saves successfully via the CME. Now when I try to content port the component, Content Porter complains as follows:

ERROR [2015-10-13 16:19:02,717] DTAPTools:124: Error - 10/13/2015:4:19:01 PM - Tridion.ContentManager.InvalidXmlException: XML validation error. Reason: The element 'selectList' in namespace 'http://www.sdl.com/web/schemas/core' has invalid child element 'options' in namespace 'http://www.sdl.com/web/schemas/core'. List of possible elements expected: 'key' in namespace 'http://www.sdl.com/web/schemas/core'.

Obviously, my first thought was to synchronize the component and so I did:

Base.CoreServiceBase sh = new Base.CoreServiceBase();
try
{
    var options = new Core.SynchronizeOptions
    {
        SynchronizeFlags = Core.SynchronizeFlags.All        
    };
    sh.OpenSession();
    sh.Session.SynchronizeWithSchemaAndUpdate(schemaId, options);

}
catch (Exception ex)
{
    Console.Write(ex.Message);
}
finally
{
    sh.CloseSession();
}

That code, gives me the same error as Content Porter. It seems like a bug to me since, if I fill in the mandatory fields within the optional embedded field, then the sync process runs just fine. Then If I removed them again (keep in mind that the CME lets me save the component as expected) and run the syn process again, it fails with the same error once again.

Have you encounter anything similar? Am I missing a hotfix?

Thanks,

  • what version are you on exactly? please note the current and supported version is 2013 SP1 HR1, and if you encounter a possible defect in that, you probabaly want to contact Customer Support. – Bart Koopman Oct 14 '15 at 7:53
  • We are in 2013 SP1, without HR1... – Jaime Santos Alcón Oct 14 '15 at 9:58
  • I'd start with installing HR1, quite a lot of fixes in there you absolutely want – Bart Koopman Oct 14 '15 at 10:03
  • I know... but it can take weeks, if not months... – Jaime Santos Alcón Oct 14 '15 at 18:36
  • Look through the hotfix list in it and see if there is one listed with your issue, and know if you planned the HR1 install when it was released you would have already had it... – Bart Koopman Oct 14 '15 at 19:06
2

Have a look at the SynchronizeFlags enum. You're using synchronizeFlags.All and that does more than you need to get valid content. For example: putting default values in optional fields.

That is exactly what the TM hotfix is about: avoid the use of SynchronizeFlags.All, but only use the flags that will fix validation issues.

  • You are right, if I specify "Default" values for all optional fields, then it works. I changed the Flags to "Basic". And it worked, thanks, – Jaime Santos Alcón Oct 15 '15 at 13:05
8

In SDL Tridion 2013 (SP1), the same error persists when you try to send the same structured content via the Translation Plugin.

To fix (in Translation Manager) we used the hotfix TT87682 part of the TM package here.

We successfully content port our content, with this same scenario - our versions are: from SDL Tridion SP1 HR1 to SDL Tridion SP1 using Content Porter 2013 SP1. << so it does let us import without HR1 on the target.

The general advice is obviously to move to HR1 as soon as possible - there are other issues with embeddable schemas that have been fixed with HR1, including (form the hotfix list):

  • TT88300: Custom URL embeddable schema multivalue field does not work properly on second value onwards in the second level embedded shema
  • TT87359: Reordering embedded Schema content causes RTF fields to become empty
  • CME_2013.1.0.87359: Moving embedded Schema fields that contains multiple fields, causes moved RTF fields to become empty in all browsers.

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.