sql-server - 使用 xs:element 命名空间标签选择 xml 格式的 SQL Server 表内容
问题描述
我正在尝试创建 SQL 代码,将表的结果动态转换为类似于下面显示的 XML 格式,但到目前为止还没有找到这样做的方法。
表格样本:
key name age
---------------
1 Anakin 23
2 jill 40
XML
<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="key" type="xs:int" minOccurs="0" />
<xs:element name="name" type="xs:string" minOccurs="0" />
<xs:element name="age" type="xs:int" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
有什么建议或阅读材料可以提供帮助吗?
解决方案
如评论中所述,您可以获得简单的元素输出,就像FOR XML PATH ('person')
要生成符合的架构和 xlm,请从这里开始:
create table person
([key] int,
[name] varchar(50),
[age] int);
go
insert into person values (1, 'Anakin', 23),(2, 'Jill', 40);
go
select * from person FOR XML AUTO, ELEMENTS, XMLSCHEMA;
如果您需要显式的元素名称或模式名称,则需要替换XML AUTO
withXML EXPLICIT
并提供您自己的模式文档。
更多信息在inline XSD
这里: https ://docs.microsoft.com/en-us/sql/relational-databases/xml/generate-an-inline-xsd-schema?view=sql-server-2017
更多信息在XML EXPLICIT
这里: https ://docs.microsoft.com/en-us/sql/relational-databases/xml/use-explicit-mode-with-for-xml?view=sql-server-2017
推荐阅读
- javascript - 无法让 XDate 与 React-Native (.toLocaleString) 一起使用
- powershell - PowerShell 工作流调用命令不起作用(写入主机)
- selenium-webdriver - 单击页面上的元素但未滚动到 nightwatch.js 中的视图时,如何防止错误?
- java - 无法从休眠中的 Crud 操作中检索数据
- python - sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) 没有这样的表:用户
- javascript - 在 node.js 中重命名 json 对象名称
- python - 如何在创建块时将 2D numpy 数组块附加到二进制文件?
- laravel - 如何在 Windows 服务器上部署将通过 LAN 访问的 laravel 应用程序?
- angular - 错误:“存储”类型上不存在属性“令牌”
- three.js - 如何防止在鼠标、触摸或按键事件之外的 iTowns 地球旋转上进行剔除或简单地重绘?