public void Visit(ValueNode node, INode parentNode) { XmlName propertyName; if (!SetPropertiesVisitor.TryGetPropertyName(node, parentNode, out propertyName)) { if (!IsCollectionItem(node, parentNode)) { return; } string contentProperty; if (!Context.Variables.ContainsKey((IElementNode)parentNode)) { return; } var parentVar = Context.Variables[(IElementNode)parentNode]; if ((contentProperty = SetPropertiesVisitor.GetContentProperty(parentVar.VariableType)) != null) { propertyName = new XmlName(((IElementNode)parentNode).NamespaceURI, contentProperty); } else { return; } } if (node.SkipPrefix((node.NamespaceResolver ?? parentNode.NamespaceResolver)?.LookupPrefix(propertyName.NamespaceURI))) { return; } if (propertyName.NamespaceURI == "http://schemas.openxmlformats.org/markup-compatibility/2006" && propertyName.LocalName == "Ignorable") { (parentNode.IgnorablePrefixes ?? (parentNode.IgnorablePrefixes = new List <string>())).AddRange( (node.Value as string).Split(',')); return; } if (propertyName.LocalName != "MergedWith") { return; } SetPropertiesVisitor.SetPropertyValue(Context.Variables[(IElementNode)parentNode], propertyName, node, Context, node); }
public void Visit(ValueNode node, INode parentNode) { XmlName propertyName; if (!SetPropertiesVisitor.TryGetPropertyName(node, parentNode, out propertyName)) { if (!IsCollectionItem(node, parentNode)) { return; } string contentProperty; if (!Context.Variables.ContainsKey((IElementNode)parentNode)) { return; } var parentVar = Context.Variables[(IElementNode)parentNode]; if ((contentProperty = SetPropertiesVisitor.GetContentProperty(parentVar.VariableType)) != null) { propertyName = new XmlName(((IElementNode)parentNode).NamespaceURI, contentProperty); } else { return; } } if (propertyName.NamespaceURI == "http://schemas.openxmlformats.org/markup-compatibility/2006" && propertyName.LocalName == "Ignorable") { return; } if (propertyName.LocalName != "MergedWith") { return; } Context.IL.Append(SetPropertiesVisitor.SetPropertyValue(Context.Variables[(IElementNode)parentNode], propertyName, node, Context, node)); }