internal static void ParseIlmd(XElement element, EpcisEvent epcisEvent) { foreach (var children in element.Elements()) { epcisEvent.CustomFields.Add(XmlCustomFieldParser.ParseCustomField(children, FieldType.Ilmd)); } }
private EpcisRequestHeader ParseHeader(XElement root) { return(new EpcisRequestHeader { StandardBusinessHeader = XmlHeaderParser.Parse(root.XPathSelectElement("EPCISHeader/sbdh:StandardBusinessDocumentHeader", EpcisNamespaces.Manager)), DocumentTime = DateTime.Parse(root.Attribute("creationDate").Value, CultureInfo.InvariantCulture), SchemaVersion = root.Attribute("schemaVersion").Value, CustomFields = XmlCustomFieldParser.ParseCustomFields(root.XPathSelectElement("EPCISHeader"), FieldType.HeaderExtension) }); }
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); }