У меня есть проблемы с экспортом данных из нашей базы данных в XML. Я, наверное, над головой, поскольку у меня нет более ранних знаний XML, но, как бы тяжело это ни было:Sql Server 2008R2 Экспорт XML
Мы уже отправляем эти данные через лист Excel, но теперь клиент хочет его как XML. После загрузки в их системе я могу загрузить его как XML вместо и ниже, является частью этого файла,
<?xml version="1.0" encoding="ISO-8859-1"?>
<PricatHead xmlns="xxxxx"
preOrderTo="2015-06-01T23:59:59"
name="15005-3"
merchant="xxxx"
customer="xxxxx"
validFrom="2014-08-01T00:00:00"
validTo="2015-06-01T23:59:59"
currency="SEK"
contractDiscount="0">
<sprProduct itemID="86035-8"
name="xxxx"
description="xxxxxx"
tax="0.00"
eanCode=""
eanType="EAN 13"
color="BLACK"
colorCode="C0100"
size="36"
sizeRange="EURO size"
modelNo="86035"
inSelection="N"
productDiscount="0">
<priceBracket quantity="1"
price="x"
grossPrice="xxxx"
validOrderDateFrom="2014-08-01T00:00:00"
validOrderDateTo="2015-06-01T00:00:00"
validShipDateFrom="2015-02-15T00:00:00"
validShipDateTo="2015-06-01T00:00:00"
type="PRE"/>
<priceBracket quantity="1"
price="x"
grossPrice="x"
validOrderDateFrom="2015-02-15T00:00:00"
validOrderDateTo="2015-06-01T00:00:00"
validShipDateFrom="2015-02-15T00:00:00"
validShipDateTo="2015-06-01T00:00:00"
type=""/>
<variantValue name="unit"
value="pcs"/>
<variantValue name="recPrice_SEK"
value="x"/>
<variantValue name="recCampaignPrice_SEK"
value="0"/>
<variantValue name="brand"
value="x"/>
<variantValue name="goodsClass"
value="4052"/>
<variantValue name="recCampaignPriceCurrency"
value="SEK"/>
<variantValue name="recWebPriceCurrency"
value="SEK"/>
<variantValue name="unitType"
value="pcs"/>
<variantValue name="x"
value="2603"/>
<variantValue name="marketingInfo"
value="xxxxx"/>
<variantValue name="preOrderDiscountHQ"
value="0"/>
<variantValue name="grossPriceCurrency"
value="SEK"/>
<variantValue name="productPicture_1"
value="xxx"/>
<variantValue name="suppOrderCurrency"
value="SEK"/>
<variantValue name="preOrderCurrency"
value="SEK"/>
<variantValue name="productPicture_3"
value="xxx"/>
<variantValue name="productPicture_2"
value="xxxx"/>
<variantValue name="invoiceMethod"
value="net"/>
<variantValue name="logisticUnit"
value="cu"/>
<variantValue name="countryOfOrigin"
value="CN"/>
<variantValue name="suppOrderDiscountHQ"
value="0"/>
<variantValue name="customsTariffNo_SE"
value="6402999300"/>
</sprProduct>
Для листа первенствовать у меня есть SQL proceedure, который производит один большой стол со всеми вышеперечисленными данными, где <sprProduct>
это одна строка и остальные столбцы. У меня нет проблем с созданием тегов <pricatHead>
и <sprProduct>
, но я с ошибкой <priceBracket>
, поскольку они также являются столбцами в выражении select, и у меня есть несколько столбцов, которым нужны их собственные <priceBracket>
. <variantValue>
вызывает ту же проблему.
Трудно объяснить, но в одной строке sql необходимо произвести несколько <priceBracket>
и <variantValue>
.
Пока мой код выглядит, как показано ниже (укороченные),
--Pricat HEAD
select
PrisLista as [@name]
,gtinMerchant as [@merchant]
,gtinCustomer as [@customer]
--Pricat ROWS
,( select
ar.ArtNr as [@itemID]
,ar.ArtBeskr as [@name]
,ar.ArtBeskrLong as [@description]
,prl.vat as [@tax]
,prl.quantity as [sprProduct/priceBracket/@quantity]
.........
from prl
for xml path ('sprProduct'), type)
from prh
FOR XML PATH ('PricatHead')
Как я может получить каждый столбец для конкретной строки, чтобы произвести свой собственный тег с приписанными значениями?
В качестве второго вопроса я также получил схему XSD для этого XML-файла от клиента. Может ли это использоваться для форматирования данных, экспортированных из моей базы данных, в соответствии с их требуемым XML-файлом?
Как насчет файла XSD? Это то, что я должен использовать для экспорта? – fish
Вы * можете * использовать XSD с XML-данными SQL Server, но это не то, что я сделал. Вы можете начать с [Сборки XML-схем] (https://msdn.microsoft.com/en-us/library/ms187856.aspx) в документах SQL Server и задать другой вопрос, если вы застряли. –