ÖRNEK: KODU ve IDREFS yönergeleri belirtme
Bir element özniteliği olarak belirtilen bir ID tür özniteliği ve idrefs özniteliği, daha sonra ona başvurmak için kullanılabilir.Bu işlem içi Belge Bağlantıları'nı etkinleştirir ve birincil anahtar ve ilişkisel veritabanlarındaki, yabancı anahtar ilişkileri benzer.
Bu bir örnek gösterilmektedir nasıl ID and idrefs yönergeleri özniteliklerini oluşturmak için kullanılabilir:ID and idrefs türleri.Kimlikleri tamsayı değerleri olamaz, çünkü bu bir örnek KIMLIĞI değerleri dönüştürülür.Diğer bir deyişle, bunlar casted tipindedir.Önekler için teşhis kodu (ID) değerleri kullanılır.
Aşağıdaki gösterildiği gibi XML oluşturmak istediğinizi varsayalım:
<Customer CustomerID="C1" SalesOrderIDList=" O11 O22 O33..." >
<SalesOrder SalesOrderID="O11" OrderDate="..." />
<SalesOrder SalesOrderID="O22" OrderDate="..." />
<SalesOrder SalesOrderID="O33" OrderDate="..." />
...
</Customer>
The SalesOrderIDList attribute of the < Customer > element is a multivalued attribute that refers to the SalesOrderID attribute of the < SalesOrder > element.To establish this link, the SalesOrderID attribute must be declared of ID type, and the SalesOrderIDList attribute of the < Customer> element must be declared of IDREFS type.Bir müşteriye birden fazla sipariş, isteyebilirler, çünkü idrefs türü kullanılır.
Öğeleri idrefs türü, birden fazla değer de vardır.Bu nedenle, aynı etiketi, üst ve anahtar sütun bilgileri yeniden ayrı bir select yan kullanmak gerekir.ORDER BY ardından, sırayı oluşturan satır sağlamak olan idrefs değerleri birlikte kendi üst öğesi altında gruplanmış görüntülenir.
Istediğiniz XML üreten sorgudur.Sorguyu kullanan ID and idrefs yönergeleri, sütun adları türlerinde üzerine yazmak için (satış siparişi! 2! Salesorderıd! KIMLIĞI, müşteri! 1! SalesOrderIDList! IDREFS).
SELECT 1 as Tag,
0 as Parent,
C.CustomerID [Customer!1!CustomerID],
NULL [Customer!1!SalesOrderIDList!IDREFS],
NULL [SalesOrder!2!SalesOrderID!ID],
NULL [SalesOrder!2!OrderDate]
FROM Sales.Customer C
UNION ALL
SELECT 1 as Tag,
0 as Parent,
C.CustomerID,
'O-'+CAST(SalesOrderID as varchar(10)),
NULL,
NULL
FROM Sales.Customer C, Sales.SalesOrderHeader SOH
WHERE C.CustomerID = SOH.CustomerID
UNION ALL
SELECT 2 as Tag,
1 as Parent,
C.CustomerID,
NULL,
'O-'+CAST(SalesOrderID as varchar(10)),
OrderDate
FROM Sales.Customer C, Sales.SalesOrderHeader SOH
WHERE C.CustomerID = SOH.CustomerID
ORDER BY [Customer!1!CustomerID] ,
[SalesOrder!2!SalesOrderID!ID],
[Customer!1!SalesOrderIDList!IDREFS]
FOR XML EXPLICIT