Estoy tratando de exportar algunos datos desde una base de datos en un formato XML particular especificado por el cliente. El XML que produzco será manipulado (presumiblemente por XSLT) por un tercero para producir el resultado final, pero quiero formalizar mi XML lo más cerca posible de ese formato.SQL FOR XML - Salida de datos como Elementos o como Atributos
El cliente ha solicitado datos sobre cada producto así:
<product id="1234567890123">
<activeState partNumber="A1234567890" shipmentDate="20110518" />
</product>
My SQL existente es:
SELECT SerialNo as id,
PartNo as partNumber,
CONVERT(VARCHAR(8), GETDATE(), 112) AS shipmentDate,
FROM Products
WHERE SerialNo = @SerialNo
FOR XML PATH ('product'), TYPE)
... lo que hace:
<product>
<id>100000000458</id>
<partNumber>10004905892</partNumber>
<shipmentDate>20120312</shipmentDate>
</product>
espero que es bastante fácil manipular estos datos en XSLT, pero puramente como un ejercicio intelectual, me gustaría ver qué tan lejos pude SQL. Mi primera ambición fue simplemente expresar la identificación como un atributo de producto más que como un elemento secundario. La representación del elemento activeState que iba a dejar al XSLT, pero claramente, si puedo ayudarlos en su camino, ¿por qué no hacerlo ...
¿Alguna sugerencia?
Trabaja a gusto - gracias. – CJM