0

テーブルの列に 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"」ですべての要素を定義するにはどうすればよいですか??

ありがとう!

4

2 に答える 2