private void EnqueueAttribute(XamlAttribute attribute) { var nodeForAttribute = new ProtoParserNode(); switch (attribute.Type) { case AttributeType.CtorDirective: case AttributeType.Name: case AttributeType.Directive: nodeForAttribute.NodeType = NodeType.Directive; break; case AttributeType.Property: nodeForAttribute.NodeType = NodeType.Attribute; break; case AttributeType.AttachableProperty: nodeForAttribute.NodeType = NodeType.Attribute; break; default: throw new ProtoParserException("The type of the attribute is unknown"); } var property = attribute.Property; var convertCrlFtoLf = property == null; nodeForAttribute.PropertyAttribute = property; var xamlText = new TextBuffer(); xamlText.Append(attribute.Value, false, convertCrlFtoLf); nodeForAttribute.PropertyAttributeText = xamlText; nodeForAttribute.Prefix = attribute.Locator.Prefix; nodes.Enqueue(nodeForAttribute); }