Я пытаюсь использовать оператор update
для столбца в моей таблице SQL Server, но получаю следующее сообщение об ошибке:
Msg 9410, Level 16, State 1, Line 1 XML parsing: line 1, character 18
Whitespace expected
Код XML, который я пытаюсь вставить, намного длиннее, чем ограничение в 30 тыс. Символов в этом сообщении, но я усек его только в качестве примера.
T-SQL
UPDATE Storefront_Product
SET
DynamicFormCode = '"<code version = ""1.0"" type = ""data""><data method = ""BasicDynamicFormProduct"" version = ""1.0"">
<fields>
<field>
<textBox>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<dataType>Decimal</dataType>
<id>sacustomdimensions</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Custom Dimensions"" />
</label>
<maxLength></maxLength>
<maxValue />
<minValue />
<required>False</required>
<text>
<locale en-US = """" />
</text>
<textMode>SingleLine</textMode>
<validatorText>
<locale en-US = ""*"" />
</validatorText>
<wrap>True</wrap>
</textBox>
</field>
<field>
<dropDownList>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<id>sa_seattype</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Seat Type"" />
</label>
<listItems>
<listItem>
<name>
<locale en-US = ""T-Cushion"" />
</name>
<value>2</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Extended Cushion"" />
</name>
<value>3</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Tight Cushion "" />
</name>
<value></value>
<selected>False</selected>
</listItem>
</listItems>
<required>False</required>
<validatorText>
<locale en-US = ""*"" />
</validatorText>
</dropDownList>
</field>
<field>
<dropDownList>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<id>sa_seatconstruction</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Seat Construction"" />
</label>
<listItems>
<listItem>
<name>
<locale en-US = ""Standard (High Density foam with memory foam caps)"" />
</name>
<value>1s</value>
<selected>True</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Spring/Down"" />
</name>
<value>2</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Spring/Fiber"" />
</name>
<value>3</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Foam encased in Down"" />
</name>
<value>4</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""All Down"" />
</name>
<value>5</value>
<selected>False</selected>
</listItem>
</listItems>
<required>False</required>
<validatorText>
<locale en-US = ""*"" />
</validatorText>
</dropDownList>
</field>
<field>
<dropDownList>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<id>sa_backtype</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Back Type"" />
</label>
<listItems>
<listItem>
<name>
<locale en-US = ""Knife Back"" />
</name>
<value>2</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Box Back"" />
</name>
<value>3</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Tight Back"" />
</name>
<value>4</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Semi-attached Back"" />
</name>
<value>5</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Channel (vertical or horizontal)"" />
</name>
<value>6</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Tufted"" />
</name>
<value></value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""T-Back Knife Edge"" />
</name>
<value></value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""T-Back Box "" />
</name>
<value></value>
<selected>False</selected>
</listItem>
</listItems>
<required>False</required>
<validatorText>
<locale en-US = ""*"" />
</validatorText>
</dropDownList>
</field>
<field>
<dropDownList>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<id>sa_backconstruction</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Back Construction"" />
</label>
<listItems>
<listItem>
<name>
<locale en-US = ""Fiber"" />
</name>
<value>1</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""50/50 Blend"" />
</name>
<value>2</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""75/25 (75% Down/25% Fiber)"" />
</name>
<value>3</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""90/10 (90% Down/10% Fiber)"" />
</name>
<value>4</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""100% Down"" />
</name>
<value>5</value>
<selected>False</selected>
</listItem>
</listItems>
<required>False</required>
<validatorText>
<locale en-US = ""*"" />
</validatorText>
</dropDownList>
</field>
<field>
<dropDownList>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<id>sa_armstyle</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Arm Style"" />
</label>
<listItems>
<listItem>
<name>
<locale en-US = ""English Arm"" />
</name>
<value>1</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Modern English"" />
</name>
<value>2</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Track Arm"" />
</name>
<value>3</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Track with nails"" />
</name>
<value>4</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Shelter Arm"" />
</name>
<value>5</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Paris Club"" />
</name>
<value>6</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Modern Tuxedo"" />
</name>
<value>7</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Pleated Roll Arm"" />
</name>
<value>8</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Panel Roll Arm"" />
</name>
<value>9</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Pad Roll Arm"" />
</name>
<value>10</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Saddle"" />
</name>
<value>11</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Key Arm"" />
</name>
<value>12</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Runched Roll Arm"" />
</name>
<value>13</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Modern Slope"" />
</name>
<value>14</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Modern Scroll"" />
</name>
<value>15</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Panel"" />
</name>
<value>16</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Other"" />
</name>
<value>Other</value>
<selected>False</selected>
</listItem>
</listItems>
<required>False</required>
<validatorText>
<locale en-US = ""*"" />
</validatorText>
</dropDownList>
</field>
<field>
<dropDownList>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<id>sa_legoptions</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Leg Options"" />
</label>
<listItems>
<listItem>
<name>
<locale en-US = ""Wedge"" />
</name>
<value>1</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Turned"" />
</name>
<value>2</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Tapered"" />
</name>
<value>3</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Inside Tapered"" />
</name>
<value>4</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Bun"" />
</name>
<value>5</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Inside Tapered"" />
</name>
<value>6</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Acrylic"" />
</name>
<value>7</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Plinth Base"" />
</name>
<value>8</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Exposed wood base"" />
</name>
<value>9</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Metal"" />
</name>
<value>10</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""English Casters"" />
</name>
<value>11</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Round"" />
</name>
<value>12</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Splay"" />
</name>
<value>13</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Swivel (Applicable Chair Only)"" />
</name>
<value>15</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Swivel Glider (Applicable Chair Only)"" />
</name>
<value>16</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Swivel Rocker (Applicable Chair Only)"" />
</name>
<value>17</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Other "" />
</name>
<value>Other </value>
<selected>False</selected>
</listItem>
</listItems>
<required>False</required>
<validatorText>
<locale en-US = ""*"" />
</validatorText>
</dropDownList>
</field>
<field>
<dropDownList>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<id>sa_designelements</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Design Elements"" />
</label>
<listItems>
<listItem>
<name>
<locale en-US = ""None"" />
</name>
<value>None</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Diamond Tuft"" />
</name>
<value>1</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Faux Tuft"" />
</name>
<value>2</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Square Tuft"" />
</name>
<value>3</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Buttonless Tuft"" />
</name>
<value>4</value>
<selected>False</selected>
</listItem>
<listItem>
<name>
<locale en-US = ""Button Stuck"" />
</name>
<value>5</value>
t;id>sa_weltplacement</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Welt Placement"" />
</label>
<listItems>
<listItem>
'
WHERE ProductID = 23
Вы не должны использовать двойные кавычки перед первым открывающим тегом code
, а также не должны помещать в этот тег лишние двойные кавычки. Ой, и это еще не закрыто. Откуда у вас этот недействительный XML?
Это не XML. Похоже на XML-кодировку XML-документа.
Да, я не мог опубликовать весь xml, у него было закрытие "", но мне пришлось стереть половину XML, потому что это было слишком много и не позволяло мне размещать
Это работает:
declare @x xml;
set @x = '<code version = "1.0" type = "data">
<data method = ""BasicDynamicFormProduct"" version = ""1.0"">
<fields>
<field>
<textBox>
<autoPostBack>False</autoPostBack>
<causesValidation>False</causesValidation>
<dataType>Decimal</dataType>
<id>sacustomdimensions</id>
<inputControlHeight></inputControlHeight>
<inputControlWidth></inputControlWidth>
<label>
<locale en-US = ""Custom Dimensions"" />
</label>
Whatever you have here, everything works.
</code>';
select @x;
Я удалил только первые двойные кавычки и лишние двойные в теге /code
(и, конечно, закрыл его в конце).
Что-то не так с тем, как сформировано ваше строковое представление XML.
Двойные кавычки, похоже, вызывают проблему. CTRL + H "с".