private void CreateReferenceAttributeValue(IL4NElement element, IXmlAttribute attribute) { if(attribute.Value == null) return; ReferenceParser parser = new ReferenceParser(); IXmlAttributeValue newElement = parser.ParseReferenceName(attribute.Value); IXmlAttributeValueNode childNode = attribute.Value.ToTreeNode(); ITreeNode parent = attribute.ToTreeNode(); ((CompositeElement)parent).AddChildAfter(newElement.ToTreeNode(), childNode); ((CompositeElement)parent).DeleteChildRange(childNode, childNode); }
private void ProcessAttribute(IL4NElement element, IXmlAttribute attribute) { ILogger logger = element as ILogger; if (logger != null) { if (attribute.XmlName == L4NConstants.NAME) { CreateReferenceAttributeValue(element, attribute); } return; } IDeclaredParameter declaredParameter = element as IDeclaredParameter; if(declaredParameter != null) { if (attribute.XmlName == L4NConstants.TYPE) { CreateReferenceAttributeValue(element, attribute); } return; } IAppender appender = element as IAppender; if (appender != null) { if (attribute.XmlName == L4NConstants.TYPE) { CreateReferenceAttributeValue(element, attribute); } return; } }
private void HandleCreateTagElement(IL4NElement element, IXmlTagHeaderNode header, IXmlTagContainer tag) { foreach (IXmlAttribute attribute in header.Attributes) { ProcessAttribute(element, attribute); } }