private void ProcessEachRelationshipValue(Interaction interaction, RelationshipBridge relationshipBridge, MessageVisitor visitor) { foreach (XmlElement child in relationshipBridge.GetElements()) { Relationship relationship = relationshipBridge.GetRelationship(); IList <MessagePart> messageParts = GetMessageParts(relationship, interaction, NodeUtil.GetLocalOrTagName(child)); if (!messageParts.IsEmpty() && !IsNull(child)) { ProcessAllRelationships(child, interaction, messageParts, visitor); } } }
private void ProcessRelationship(Interaction interaction, MessagePart messagePart, RelationshipBridge relationship, MessageVisitor visitor) { if (relationship.IsStructuralAttribute()) { XmlAttribute attr = relationship.GetAttribute(); visitor.VisitStructuralAttribute(relationship.GetBase(), attr, relationship.GetRelationship()); } else { if (relationship.IsAssociation()) { visitor.VisitAssociation(relationship.GetBase(), relationship.GetXmlName(), relationship.GetElements(), relationship.GetRelationship ()); ProcessEachRelationshipValue(interaction, relationship, visitor); } else { visitor.VisitNonStructuralAttribute(relationship.GetBase(), relationship.GetElements(), relationship.GetRelationship()); } } }