我正在尝试创建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>
有什么建议或阅读材料可以帮助您吗?
答案 0 :(得分:0)
如评论中所述,您可以获得与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
换成XML 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