向SQL Server中的查询输出添加额外信息



我在生成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中的XML UTF-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>的关闭,但这无助于理解您的问题。无论如何,没有开头标签这是错误的...

最新更新