protected override void ParseUnversionedTextNode(ItemParseContext context, Item item, ITextNode textNode) { foreach (var languageChildNode in textNode.ChildNodes) { var fieldContext = new LanguageVersionContext(); fieldContext.LanguageProperty.SetValue(new AttributeNameTextNode(languageChildNode)); ParseUnversionedOrVersionedTreeNode(context, item, fieldContext, languageChildNode); } }
protected override void ParseUnversionedTextNode(ItemParseContext context, Item item, ITextNode textNode) { var fieldContext = new LanguageVersionContext(); fieldContext.LanguageProperty.Parse(textNode); foreach (var unversionedChildNode in textNode.ChildNodes) { ParseFieldTextNode(context, item, fieldContext, unversionedChildNode); } }
protected override void ParseFieldTextNode(ItemParseContext context, Item item, LanguageVersionContext languageVersionContext, ITextNode textNode) { var fieldNameTextNode = string.IsNullOrEmpty(textNode.Value) ? textNode.GetAttribute("Name") : textNode; if (fieldNameTextNode == null) { context.ParseContext.Trace.TraceError(Msg.P1015, Texts.Expected__Name__attribute, textNode); return; } ParseFieldTextNode(context, item, languageVersionContext, textNode, fieldNameTextNode); }
protected override void ParseFieldsTextNode(ItemParseContext context, Item item, ITextNode textNode) { var fieldContext = new LanguageVersionContext(); foreach (var attribute in textNode.Attributes) { ParseFieldTextNode(context, item, fieldContext, attribute); } base.ParseFieldsTextNode(context, item, textNode); }
protected override void ParseLayoutTextNode(ItemParseContext context, Item item, ITextNode textNode) { var childNode = textNode.ChildNodes.FirstOrDefault(); if (childNode == null) { return; } var parser = new XmlLayoutTextNodeParser(); parser.Parse(context, childNode, item); }
protected override void ParseUnversionedTextNode(ItemParseContext context, Item item, ITextNode textNode) { var firstChildNode = textNode.ChildNodes.First(); var fieldContext = new LanguageVersionContext(); fieldContext.LanguageProperty.SetValue(new AttributeNameTextNode(firstChildNode)); foreach (var unversionedChildNode in firstChildNode.ChildNodes) { ParseFieldTextNode(context, item, fieldContext, unversionedChildNode); } }
protected override void ParseChildrenTextNodes(ItemParseContext context, Item item, ITextNode textNode) { foreach (var childNode in textNode.ChildNodes) { // id child node is blank and first child is "Item", then this is probably an File.Include item var child = childNode; if (string.IsNullOrEmpty(child.Key) && !child.Attributes.Any() && child.ChildNodes.Count() == 1 && child.ChildNodes.First().Key == "Item") { child = childNode.ChildNodes.First(); } var newContext = context.ParseContext.Factory.ItemParseContext(context.ParseContext, context.Parser, item.DatabaseName, PathHelper.CombineItemPath(context.ParentItemPath, item.ItemName), item.IsImport); Parse(newContext, child); } }
protected override void ParseVersionedTextNode(ItemParseContext context, Item item, ITextNode textNode) { context.ParseContext.SchemaService.ValidateTextNodeSchema(textNode); foreach (var versionChildNode in textNode.ChildNodes) { var fieldContext = new LanguageVersionContext(); fieldContext.LanguageProperty.Parse(textNode); fieldContext.VersionProperty.Parse(versionChildNode); foreach (var versionedChildNode in versionChildNode.ChildNodes) { ParseFieldTextNode(context, item, fieldContext, versionedChildNode); } } }
protected override void ParseFieldTextNode(ItemParseContext context, Item item, LanguageVersionContext languageVersionContext, ITextNode textNode) { var fieldNameTextNode = textNode.Key == "Field" ? textNode.GetAttribute("Name") : new AttributeNameTextNode(textNode); if (fieldNameTextNode == null) { context.ParseContext.Trace.TraceError(Msg.P1014, Texts.Expected__Name__attribute, textNode); return; } if (textNode.Attributes.Any() || textNode.ChildNodes.Any()) { base.ParseFieldTextNode(context, item, languageVersionContext, textNode, fieldNameTextNode); return; } base.ParseFieldTextNode(context, item, languageVersionContext, textNode, fieldNameTextNode, textNode); }
protected override void ParseVersionedTextNode(ItemParseContext context, Item item, ITextNode textNode) { var firstChildNode = textNode.ChildNodes.First(); context.ParseContext.SchemaService.ValidateTextNodeSchema(firstChildNode); foreach (var node in firstChildNode.ChildNodes) { var fieldContext = new LanguageVersionContext(); fieldContext.LanguageProperty.SetValue(new AttributeNameTextNode(firstChildNode)); fieldContext.VersionProperty.SetValue(new AttributeNameTextNode(node)); foreach (var versionedChildNode in node.ChildNodes) { ParseFieldTextNode(context, item, fieldContext, versionedChildNode); } } }
protected override void ParseLayoutTextNode(ItemParseContext context, Item item, ITextNode textNode) { var parser = new XmlLayoutTextNodeParser(); parser.Parse(context, textNode, item); }
protected override void ParseFieldsTextNode(ItemParseContext context, Item item, ITextNode fieldsTextNode) { context.ParseContext.SchemaService.ValidateTextNodeSchema(fieldsTextNode); base.ParseFieldsTextNode(context, item, fieldsTextNode); }
protected override void ParseUnknownTextNode(ItemParseContext context, Item item, LanguageVersionContext languageVersionContext, ITextNode textNode) { var fieldNameTextNode = new AttributeNameTextNode(textNode); ParseFieldTextNode(context, item, languageVersionContext, textNode, fieldNameTextNode); }
protected override void ParseVersionedTextNode(ItemParseContext context, Item item, ITextNode textNode) { context.ParseContext.SchemaService.ValidateTextNodeSchema(textNode); foreach (var languageChildNode in textNode.ChildNodes) { foreach (var versionChildNode in languageChildNode.ChildNodes) { var fieldContext = new LanguageVersionContext(); fieldContext.LanguageProperty.SetValue(new AttributeNameTextNode(languageChildNode)); fieldContext.VersionProperty.SetValue(new AttributeNameTextNode(versionChildNode)); ParseUnversionedOrVersionedTreeNode(context, item, fieldContext, versionChildNode); } } }
protected override void ParseUnknownTextNode(ItemParseContext context, Item item, LanguageVersionContext languageVersionContext, ITextNode textNode) { ParseFieldTextNode(context, item, languageVersionContext, textNode); }
public abstract void WriteItem(TextWriter textWriter, Item item);