テーブルの列に xml スキーマを追加しようとしています。私がしたいことは:
- クエリからスキーマを抽出する
- 列にスキーマを追加する
- この列に xml を挿入します
私の問題は、空の要素をチェックしない可能性など、スキーマ内のいくつかのオプションを除外する方法です。
たとえば、次のようになります。
create table #t1 (c1 int not null,c2 int null)
select CONVERT(xml,(select *
from #t1
where 0=1
for xml raw,elements,XMLSCHEMA('XXX')
))
これは私を得る
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" targetNamespace="XXX" elementFormDefault="qualified">
<xsd:import namespace="http://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="http://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />
<xsd:element name="row">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="c1" type="sqltypes:int" />
<xsd:element name="c2" type="sqltypes:int" minOccurs="0" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
「minOccurs="0"」ですべての要素を定義するにはどうすればよいですか??
ありがとう!