protected override SyncAttempt <XElement> SerializeCore(IMemberType item, SyncSerializerOptions options)
        {
            var node = SerializeBase(item);
            var info = SerializeInfo(item);

            var parent = item.ContentTypeComposition.FirstOrDefault(x => x.Id == item.ParentId);

            if (parent != null)
            {
                info.Add(new XElement("Parent", parent.Alias,
                                      new XAttribute("Key", parent.Key)));
            }
            else if (item.Level != 1)
            {
                // in a folder
                var folderNode = GetFolderNode(memberTypeService.GetContainers(item));
                if (folderNode != null)
                {
                    info.Add(folderNode);
                }
            }

            info.Add(SerializeCompostions((ContentTypeCompositionBase)item));

            node.Add(info);
            node.Add(SerializeProperties(item));
            node.Add(SerializeStructure(item));
            node.Add(SerializeTabs(item));

            return(SyncAttempt <XElement> .Succeed(item.Name, node, typeof(IMediaType), ChangeType.Export));
        }