in JSLib/src/odata-atom.js [1234:1294]
var atomNewODataEntry = function (dom, data, model) {
/// <summary>Creates a new DOM element for an Atom entry.</summary>
/// <param name="dom">DOM document used for creating the new DOM Element.</param>
/// <param name="data" type="Object">Entry object in the library's internal representation.</param>
/// <param name="model" type="Object" optional="true">Object describing an OData conceptual schema.</param>
/// <returns type="Object">
/// Object containing the new DOM element for the Atom entry and the required data service version for it.
/// </returns>
var payloadMetadata = data.__metadata || {};
var propertiesMetadata = payloadMetadata.properties || {};
var etag = payloadMetadata.etag;
var uri = payloadMetadata.uri;
var typeName = payloadMetadata.type;
var entityType = lookupEntityType(typeName, model);
var properties = xmlNewODataMetaElement(dom, "properties");
var entry = atomNewElement(dom, "entry", [
atomNewElement(dom, "author",
atomNewElement(dom, "name")
),
etag && xmlNewODataMetaAttribute(dom, "etag", etag),
uri && atomNewElement(dom, "id", uri),
typeName && atomNewElement(dom, "category", [
atomNewAttribute(dom, "term", typeName),
atomNewAttribute(dom, "scheme", odataScheme)
]),
// TODO: MLE support goes here.
atomNewElement(dom, "content", [
atomNewAttribute(dom, "type", "application/xml"),
properties
])
]);
var dataServiceVersion = "1.0";
for (var name in data) {
if (name !== "__metadata") {
var entryDataItemMetadata = propertiesMetadata[name] || {};
var entryDataItemModel = entityType && (
lookupProperty(entityType.property, name) ||
lookupProperty(entityType.navigationProperty, name));
var entryDataItem = atomNewODataEntryDataItem(dom, name, data[name], entryDataItemMetadata, entryDataItemModel, model);
if (entryDataItem) {
var entryElement = entryDataItem.element;
var entryElementParent = (xmlNamespaceURI(entryElement) === atomXmlNs) ? entry : properties;
xmlAppendChild(entryElementParent, entryElement);
dataServiceVersion = maxVersion(dataServiceVersion, entryDataItem.dsv);
}
}
}
atomApplyAllFeedCustomizations(entityType, model, function (customization) {
var customizationDsv = atomEntryCustomization(dom, entry, properties, customization);
dataServiceVersion = maxVersion(dataServiceVersion, customizationDsv);
});
return xmlNewODataElementInfo(entry, dataServiceVersion);
};