Я пытаюсь экспортировать некоторые данные из базы данных в определенном формате XML, указанном клиентом. Получаемый мной XML будет обрабатываться (предположительно XSLT) третьей стороной для получения окончательного вывода, но я хочу, чтобы формальный XML был как можно ближе к этому формату.
Клиент запросил данные для каждого продукта следующим образом:
<product id="1234567890123">
<activeState partNumber="A1234567890" shipmentDate="20110518" />
</product>
Мой существующий SQL:
SELECT SerialNo as id,
PartNo as partNumber,
CONVERT(VARCHAR(8), GETDATE(), 112) AS shipmentDate,
FROM Products
WHERE SerialNo = @SerialNo
FOR XML PATH ('product'), TYPE)
... который отображает:
<product>
<id>100000000458</id>
<partNumber>10004905892</partNumber>
<shipmentDate>20120312</shipmentDate>
</product>
Я ожидаю, что достаточно легко манипулировать этими данными в XSLT, но чисто как интеллектуальное упражнение, я хотел бы видеть, насколько я мог в SQL. Моей первой целью было просто выразить идентификатор как атрибут продукта, а не как дочерний элемент. Проведение элемента activeState я собиралось уйти в XSLT, но ясно, если я могу помочь им в пути, почему бы и нет...
Любые предложения?