internal static void ParseIlmd(XElement element, EpcisEvent epcisEvent) { foreach (var children in element.Elements()) { epcisEvent.CustomFields.Add(XmlCustomFieldParser.ParseCustomField(children, FieldType.Ilmd)); } }
internal static void ParseExtensionElement(XElement innerElement, EpcisEvent epcisEvent) { if (innerElement.Name.Namespace == XNamespace.None || innerElement.Name.Namespace == XNamespace.Xmlns || innerElement.Name.NamespaceName == EpcisNamespaces.Capture) { epcisEvent = ParseAttributes(innerElement, epcisEvent); } else { epcisEvent.CustomFields.Add(XmlCustomFieldParser.ParseCustomField(innerElement, FieldType.EventExtension)); } }
internal static EpcisEvent ParseAttributes(XElement root, EpcisEvent epcisEvent) { foreach (var node in root.Elements()) { if (node.Name.NamespaceName != XNamespace.None && node.Name.NamespaceName != XNamespace.Xmlns && node.Name.NamespaceName != EpcisNamespaces.Capture) { epcisEvent.CustomFields.Add(XmlCustomFieldParser.ParseCustomField(node, FieldType.CustomField)); } else if (ParserMethods.TryGetValue(node.Name.LocalName, out Action <EpcisEvent, XElement> parserMethod)) { parserMethod(epcisEvent, node); } else { epcisEvent.CustomFields.Add(XmlCustomFieldParser.ParseCustomField(node, FieldType.EventExtension)); } } return(epcisEvent); }