gpt4 book ai didi

sql-server - 在 SQL Server 中验证 xml

转载 作者:数据小太阳 更新时间:2023-10-29 02:35:04 26 4
gpt4 key购买 nike

我有以下 xml:

<?xml version="1.0" encoding="windows-1252"?>
<!--MBS Data - Created 03/06/2014 11:40:13-->
<MBS_XML>
<Data>
<ItemNum>3</ItemNum>
<SubItemNum>1</SubItemNum>
</Data>
<Data>
<ItemNum>4</ItemNum>
<SubItemNum>2</SubItemNum>
</Data>
<Data>
<ItemNum>20</ItemNum>
<SubItemNum>3</SubItemNum>
</Data>
<Data>
<ItemNum>23</ItemNum>
<SubItemNum>1</SubItemNum>
</Data>
</MBS_XML>

我正在使用 cmd 为其生成 xsd 并在 SQL Server 中创建模式以验证:

CREATE XML SCHEMA COLLECTION dbo.MBS_IMPORT_SCHEMA
AS'
<xs:schema id="MBS_XML" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="MBS_XML" msdata:IsDataSet="true" msdata:Locale="en-US">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Data">
<xs:complexType>
<xs:sequence>
<xs:element name="ItemNum" type="xs:string" minOccurs="0" />
<xs:element name="SubItemNum" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
';

但是当我根据模式验证 xml 时,出现以下错误:

XML Validation: Declaration not found for element 'MBS_XML'. Location: /*:MBS_XML[1]

我在这里看到过类似的东西,但我尝试过但没有解决我的问题。有人可以帮忙吗?谢谢。

最佳答案

似乎在这里工作得很好。我正在使用 SQL Server 2012。

执行以下操作将根据 dbo.MBS_IMPORT_SCHEMA 验证您的 XML。确保在 XML 模式集合创建和 XML 验证之间有 GO 分隔符

CREATE XML SCHEMA COLLECTION dbo.MBS_IMPORT_SCHEMA
AS'
<xs:schema id="MBS_XML" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="MBS_XML" msdata:IsDataSet="true" msdata:Locale="en-US">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Data">
<xs:complexType>
<xs:sequence>
<xs:element name="ItemNum" type="xs:string" minOccurs="0" />
<xs:element name="SubItemNum" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
';

GO

DECLARE @x XML(dbo.MBS_IMPORT_SCHEMA)
SELECT @x = '<?xml version="1.0" encoding="windows-1252"?>
<!--MBS Data - Created 03/06/2014 11:40:13-->
<MBS_XML>
<Data>
<ItemNum>3</ItemNum>
<SubItemNum>1</SubItemNum>
</Data>
<Data>
<ItemNum>4</ItemNum>
<SubItemNum>2</SubItemNum>
</Data>
<Data>
<ItemNum>20</ItemNum>
<SubItemNum>3</SubItemNum>
</Data>
<Data>
<ItemNum>23</ItemNum>
<SubItemNum>1</SubItemNum>
</Data>
</MBS_XML>'

关于sql-server - 在 SQL Server 中验证 xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26723901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com