我在生成XML的SQL Server中具有此查询,我想添加一些详细信息。
这就是我所拥有的:
<FE>
<id>1</id>
<pass>0</pass>
<CONSECUTIVE>0</CONSECUTIVE>
<DetailLine>
<Article>Book<Article/>
<Currency>USD</Currency>
<Price>10</Price>
<Total>10</Total>
</DetailLine>
....
</FE>
我希望它生成此输出
<?xml version="1.0" encoding="utf-8"?> <- CHANGE 1
<FE xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica"> <- CHANGE 2
<id>1</id>
<pass>0</pass>
<CONSECUTIVE>0</CONSECUTIVE>
<DetailLine>
<Article>Book<Article/>
<Currency>USD</Currency>
<Price>10</Price>
<Total>10</Total>
</DetailLine>
</EndLine> <--add this CHANGE 3
....
</FE>
您的问题还不清楚...尤其是更改3 实际上是错误的...
但一个接一个:
-
更改1:XML级别不支持这!
任何XML删除<?xml blah ?>
都将被省略为SQL-Server中的XMLUTF-16
(确切地说是:UCS-2
(
真正的UTF-8
完全不支持SQL-Server!许多人认为VARCHAR
类型是UTF-8
,但这是错误的。它是扩展的ascii 。
您可以串联串。因此,您可以将XML转换为字符串并附加您喜欢的任何其他字符串,但这可能是 - 可能不再形成良好的XML ... -
更改2:这很容易,请阅读有关
WITH XMLNAMESPACES
尝试这个
WITH XMLNAMESPACES(DEFAULT 'https://tribunet.hacienda.go.cr/docs/esquemas/2017/v4.2/facturaElectronica'
,'http://www.w3.org/2001/XMLSchema' AS xsd
,'http://www.w3.org/2001/XMLSchema-instance' AS xsi)
SELECT 1 AS [id]
,0 AS [pass]
,0 AS [CONSECUTIVE]
FOR XML PATH('FE');
- 更改3:不知道您需要什么。您的示例显示了
</newLine>
的关闭,但这无助于理解您的问题。无论如何,没有开头标签这是错误的...