Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用表列名作为XML标记在SQL中构造XML_Sql_Sql Server_Xml - Fatal编程技术网

用表列名作为XML标记在SQL中构造XML

用表列名作为XML标记在SQL中构造XML,sql,sql-server,xml,Sql,Sql Server,Xml,我需要以XML格式获取表的模式 考虑一个具有列的TablePerson: ID varchar(10)标识、名称varchar(20)、名称varchar(10) 我需要XML的格式 <Persons> <Person LocalizationSetting = {today's date}> <ID type=varchar length =10 required=true/> <Nametype=varchar length =20 required

我需要以XML格式获取表的模式

考虑一个具有列的TablePerson:

ID varchar(10)标识、名称varchar(20)、名称varchar(10)

我需要XML的格式

<Persons>
<Person LocalizationSetting = {today's date}>
<ID type=varchar length =10 required=true/>
<Nametype=varchar length =20 required=true/>
<Designation  type=varchar length =10 required=true/>
</Person>
</Persons>
我得到以下结果:

<Patients>
  <column column_name="ID" type="varchar"  maxLength="10" required="true" />
  <column column_name="Name" type="varchar" maxLength="20" required="true" />
  <column column_name="Designation" type="varchar" maxLength="10" required="true" />
</Patients>


是否可以将列名作为预期结果中显示的标记?

您应该解决此问题

我需要以XML格式获取表的模式

。。。具有标准内置功能。您作为预期输出提供的模式可能是一些自定义结构。。。看看这个:

CREATE TABLE Person  (ID VARCHAR(10) NOT NULL
                     ,NameType VARCHAR(20) NOT NULL
                     ,Designation VARCHAR(10) NOT NULL);
INSERT INTO Person VALUES('SomeID','SomeType','SomeDes');

SELECT * FROM Person FOR XML AUTO,XMLDATA;
--XMLDATA返回此模式

<Schema name="Schema1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <ElementType name="Person" content="empty" model="closed">
    <AttributeType name="ID" dt:type="string" />
    <AttributeType name="NameType" dt:type="string" />
    <AttributeType name="Designation" dt:type="string" />
    <attribute type="ID" />
    <attribute type="NameType" />
    <attribute type="Designation" />
  </ElementType>
</Schema>
<xsd:schema targetNamespace="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:schema="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" 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="Person">
    <xsd:complexType>
      <xsd:attribute name="ID" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth">
            <xsd:maxLength value="10" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="NameType" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth">
            <xsd:maxLength value="20" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="Designation" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth">
            <xsd:maxLength value="10" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
--XMLSCHEMA返回此模式

<Schema name="Schema1" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">
  <ElementType name="Person" content="empty" model="closed">
    <AttributeType name="ID" dt:type="string" />
    <AttributeType name="NameType" dt:type="string" />
    <AttributeType name="Designation" dt:type="string" />
    <attribute type="ID" />
    <attribute type="NameType" />
    <attribute type="Designation" />
  </ElementType>
</Schema>
<xsd:schema targetNamespace="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:schema="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="http://schemas.microsoft.com/sqlserver/2004/sqltypes" 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="Person">
    <xsd:complexType>
      <xsd:attribute name="ID" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth">
            <xsd:maxLength value="10" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="NameType" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth">
            <xsd:maxLength value="20" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
      <xsd:attribute name="Designation" use="required">
        <xsd:simpleType>
          <xsd:restriction base="sqltypes:varchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth">
            <xsd:maxLength value="10" />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:attribute>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>
结果

<Persons>
  <Person LocalizationSetting="2017-04-18T11:05:30.047">
    <ID type="varchar" length="10" required="true" />
    <NameType type="varchar" length="20" required="true" />
    <Designation type="varchar" length="10" required="true" />
  </Person>
</Persons>

感谢您的详细回复。它工作得很好。
<Persons>
  <Person LocalizationSetting="2017-04-18T11:05:30.047">
    <ID type="varchar" length="10" required="true" />
    <NameType type="varchar" length="20" required="true" />
    <Designation type="varchar" length="10" required="true" />
  </Person>
</Persons>