C: XML, Atom 1.0: Return Hierarchical Parent Resources: Listing 1
The Atom 1.0 specification allows you to nest a <feed> group within <entry> groups to create a hierarchical structure that accommodates one-to-many associations. This Atom document's parent <feed> group for the Orders EntitySet contains an <entry> for each Order entity, which in turn contains an Order_Details <feed> group with <entry> groups for each Order_Detail entity. Atom <link> elements with an "edit" rel value specify an editable entity instance, and "related" indicates an associated entity or collection. A type attribute value of "entry" indicates a many-to-one or one-to-one EntityReference, and "feed" indicates a one-to-many EntitySet association.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xml:base=
"http://localhost:52660/Northwind.svc/"
xmlns:ads="http://schemas.microsoft.com/ado/2007/08/
dataweb"
xmlns:adsm="http://schemas.microsoft.com/ado/2007/08/dataweb/
metadata" xmlns="http://www.w3.org/2005/Atom">
<id>http://localhost:52660/Northwind.svc/Orders</id>
<updated />
<title>Orders</title>
<link rel="self" href="Orders" title="Orders" />
<entry adsm:type="NorthwindModel.Order">
<id>http://localhost:52660/Northwind.svc/Orders(
10248)</id>
<updated />
<title />
<author>
<name />
</author>
<link rel="edit" href="Orders(10248)" title=
"Order" />
<content type="application/xml">
<ads:OrderID adsm:type="Int32">10248
</ads:OrderID>
<ads:OrderDate adsm:type="DateTime">
1996-07-04T00:00:00
</ads:OrderDate>
<ads:RequiredDate adsm:type="DateTime">
1996-08-01T00:00:00
</ads:RequiredDate>
<ads:ShippedDate adsm:type=
"Nullable'1[System.DateTime]">
1996-07-16T00:00:00
</ads:ShippedDate>
<ads:Freight adsm:type=
"Nullable'1[System.Decimal]">
32.3800
</ads:Freight>
<ads:ShipName>Vins et alcools Chevalier
</ads:ShipName>
<ads:ShipAddress>59 rue de l'Abbaye
</ads:ShipAddress>
<ads:ShipCity>Reims</ads:ShipCity>
<ads:ShipRegion ads:null="true" />
<ads:ShipPostalCode>51100</ads:ShipPostalCode>
<ads:ShipCountry>France</ads:ShipCountry>
</content>
<link rel="related" title="Customer"
href="Orders(10248)/Customer"
type="application/atom+xml;type=entry" />
<link rel="related" title="Employee"
href="Orders(10248)/Employee"
type="application/atom+xml;type=entry" />
<link rel="related" title="Order_Details"
href="Orders(10248)/Order_Details" adsm:inline="true"
type="application/atom+xml;type=feed">
<feed>
<id>http://localhost:52660/Northwind.svc/
Orders(10248)/Order_Details</id>
<updated />
<title>Order_Details</title>
<link rel="self" href="Orders(10248)/
Order_Details"
title="Order_Details" />
<entry adsm:type="NorthwindModel.Order_Detail">
<id>http://localhost:52660/Northwind.svc/
Order_Details(10248,11)</id>
<updated />
<title />
<author>
<name />
</author>
<link rel="edit" href="Order_Details(10248,11)"
title="Order_Detail" />
<content type="application/xml">
<ads:OrderID adsm:type="Int32">
10248</ads:OrderID>
<ads:ProductID adsm:type="Int32">
11 </ads:ProductID>
<ads:UnitPrice adsm:type="Decimal">
14.0000</ads:UnitPrice>
<ads:Quantity adsm:type="Int16">
12 </ads:Quantity>
<ads:Discount adsm:type="Single">
0</ads:Discount>
</content>
<link rel="related" title="Order"
href="Order_Details(10248,11)/Order"
type="application/atom+xml;type=entry" />
<link rel="related" title="Product"
href="Order_Details(10248,11)/Product"
type="application/atom+xml;type=entry" />
</entry>
<!-- Additional Order_Details in nested <feed>
groups ... -->
</feed>
</link>
<link rel="related" title="Shipper" href="Orders(10248)/Shipper"
type="application/atom+xml;type=entry" />
</entry>
<!-- Additional Order entities in outer <entry>
groups ... -->
</feed>