Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Хочу загрузить sqlXmlBulkLoad

XML-файл Login_Response.xml
+
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
	<SOAP-ENV:Body SOAP-ENC:encodingStyle="http://schemas.xmlsoap.org/soap/envelope/" xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf">
		<NS1:LoginResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer">
			<return xsi:type="NS2:TewsLoginResult">lrSuccess</return>
			<SessionID xsi:type="xsd:string">{245C9AB2-F142-48CA-AAB6-BABEBC6239B8}</SessionID>
		</NS1:LoginResponse>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


Схему нарисовал loginSchema.xsd
+
<xsd:schema xmlns:sql="urn:schemas-microsoft-com:mapping-schema"

            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
	    xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf"
            xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 

>

  <xsd:element name="Envelope" sql:is-constant="1">
    <xsd:complexType>
      <xsd:sequence>

        <xsd:element name="Body" minOccurs="1" maxOccurs="1" sql:is-constant="1" >
          <xsd:complexType>
            <xsd:sequence>

              <xsd:element name="LoginResponse" minOccurs="1" maxOccurs="1"
                   sql:relation="[xml_alean_login]" 
                   sql:overflow-field="OverflowColumn"
              >
                <xsd:complexType>
                  <xsd:sequence>

                    <xsd:element name="return"    type="xsd:string" minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)" sql:field="[return]" />
                    <xsd:element name="SessionID" type="xsd:string" minOccurs="0" maxOccurs="1" sql:datatype="nvarchar(256)"/>

                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>

            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>


Загружалка
+
Dim objBL 
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=.\moretravel;database=tempdb;integrated security=SSPI"
objBL.ErrorLogFile = "error.log"

objBL.SchemaGen = True
objBL.SGDropTables = True

objBL.Execute "loginSchema.xsd", "Login_Response.xml"
Set objBL = Nothing


Облом в том что данные в таблицу не грузятся.
Я догадываюсь, что нужно какое-то волшебство с xmlns... но если честно - я уже запутался в этих пространствах имен.
20 фев 16, 19:25    [18847493]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Ладно, в интернете есть все. Есть и примеры сложно сочиненных схем.
Вот два любопытных источника по теме:
http://www.execsql.com/post/category/sql-xml-bulk-load
https://www.liquid-technologies.com/xml-schema-tutorial/xsd-namespaces

В первом пример попроще рассмотрен. Частично его удалось запустить
+
-- данные data.xml
<?xml version="1.0" encoding="utf-8"?>
<sdt:Catalogue xmlns:sdt="urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2"
           xmlns="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2"
           xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
           xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 UBL-Catalogue-2.0.xsd">
   <cac:CatalogueLine>
    <cbc:ID>11002</cbc:ID>    
  </cac:CatalogueLine>
   <cac:CatalogueLine>
    <cbc:ID>11003</cbc:ID>
  </cac:CatalogueLine>
</sdt:Catalogue>

-- три схемы

-- основная schema.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            
           xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
           xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

  <xs:annotation>
    <xs:appinfo>
      <sql:relationship name="SomeName"
                        parent="Import"
                        parent-key="PK"
                        child="Import2"
                        child-key="FK" />
    </xs:appinfo>
  </xs:annotation>

  <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" schemaLocation="cbc.xsd" />
  <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" schemaLocation="cac.xsd" />

  <xs:element name="Catalogue" sql:relation="Import">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="cac:CatalogueLine" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

-- cac.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
                attributeFormDefault="unqualified" elementFormDefault="qualified"
                targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
           xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" schemaLocation="cbc.xsd" />

  <xs:element name="ValidityPeriod" sql:is-constant="1" >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cbc:StartDate" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CatalogueLine" sql:relationship="SomeName" sql:relation="Import2">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cbc:ID"  />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

-- cbc.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema"

           >
  <xs:element name="UBLVersionID" type="xs:decimal"/>
  <xs:element name="StartDate" type="xs:date" sql:field="DateX" sql:datatype="datetime" />
  <xs:element name="ID" type="xs:unsignedShort" sql:field="LineID" />
</xs:schema>

-- загружалка
Dim objBL 
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=.\logs;database=tempdb;integrated security=SSPI"
objBL.ErrorLogFile = "error.log"

objBL.SchemaGen = True
objBL.SGDropTables = True

objBL.Execute "Schema.xsd", "Data.xml"
Set objBL = Nothing


!!! и это РАБОТАЕТ!

Однако полный пример - не желает запускаться. Конечно, это уже не так важно - мне частичного хватит.
Но досадно же.
+
-- данные data.xml
<?xml version="1.0" encoding="utf-8"?>
<Catalogue xmlns:sdt="urn:oasis:names:specification:ubl:schema:xsd:SpecializedDatatypes-2"
           xmlns="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2"
           xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
           xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="urn:oasis:names:specification:ubl:schema:xsd:Catalogue-2 UBL-Catalogue-2.0.xsd">
  <cbc:UBLVersionID>2.0</cbc:UBLVersionID>
   <cac:ValidityPeriod>
    <cbc:StartDate>2011-03-02</cbc:StartDate>
  </cac:ValidityPeriod>
   <cac:CatalogueLine>
    <cbc:ID>11002</cbc:ID>    
  </cac:CatalogueLine>
   <cac:CatalogueLine>
    <cbc:ID>11003</cbc:ID>
  </cac:CatalogueLine>
</Catalogue>
-- три схемы

-- основная schema.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"            
           xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
           xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema">

  <xs:annotation>
    <xs:appinfo>
      <sql:relationship name="SomeName"
                        parent="Import"
                        parent-key="PK"
                        child="Import2"
                        child-key="FK" />
    </xs:appinfo>
  </xs:annotation>

  <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" schemaLocation="cbc.xsd" />
  <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" schemaLocation="cac.xsd" />

  <xs:element name="Catalogue" sql:relation="Import">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cbc:UBLVersionID" />
        <xs:element ref="cac:ValidityPeriod" />
        <xs:element maxOccurs="unbounded" ref="cac:CatalogueLine" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

-- cac.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
                attributeFormDefault="unqualified" elementFormDefault="qualified"
                targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
           xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:import namespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" schemaLocation="cbc.xsd" />

  <xs:element name="ValidityPeriod" sql:is-constant="1" >
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cbc:StartDate" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CatalogueLine" sql:relationship="SomeName" sql:relation="Import2">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="cbc:ID"  />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

-- cbc.xsd
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
           xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns:sql="urn:schemas-microsoft-com:mapping-schema"

           >
  <xs:element name="UBLVersionID" type="xs:decimal"/>
  <xs:element name="StartDate" type="xs:date" sql:field="DateX" sql:datatype="datetime" />
  <xs:element name="ID" type="xs:unsignedShort" sql:field="LineID" />
</xs:schema>

-- загружалка
Dim objBL 
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=.\logs;database=tempdb;integrated security=SSPI"
objBL.ErrorLogFile = "error.log"

objBL.SchemaGen = True
objBL.SGDropTables = True

objBL.Execute "Schema.xsd", "Data.xml"
Set objBL = Nothing

Schema mapping: Schema: cannot infer default mapping for 'UBLVersionID'. Neither it nor any of its ancestors defines a relation.


Может кого осенит что тут не так?
21 фев 16, 12:58    [18848939]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Ну вот, рабочая схема для загрузки xml из первого поста.

+
-- schema.xsd 
<xsd:schema xmlns:sql="urn:schemas-microsoft-com:mapping-schema"

            xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 

            targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
            elementFormDefault="qualified"
            attributeFormDefault="qualified"
>

<xsd:import schemaLocation="IewsServer.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" />

  <xsd:element name="Envelope" sql:is-constant="1">
    <xsd:complexType>
      <xsd:sequence>

        <xsd:element name="Body" minOccurs="1" maxOccurs="1" sql:is-constant="1" >
          <xsd:complexType>
            <xsd:sequence>

              <xsd:element ref="NS1:LoginResponse"/>

            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>

-- ewsServerIntf.xsd 
    <xsd:schema 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

               xmlns="urn:webservice-electrasoft-ru:types-ewsServerIntf" 
               targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf"
               elementFormDefault="qualified"
    >
      <xsd:simpleType name="TewsLoginResult">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="lrSuccess" />
          <xsd:enumeration value="lrMustChangePassword" />
          <xsd:enumeration value="lrRestrictedAccess" />
          <xsd:enumeration value="lrInternetAccessDenied" />
          <xsd:enumeration value="lrAccessDenied" />
          <xsd:enumeration value="lrUserAccountClosed" />
          <xsd:enumeration value="lrExpiredDigestPassword" />
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="TewsInternalMessageReadUnreadType">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="imrtRead" />
          <xsd:enumeration value="imrtUnead" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:schema>

-- IewsServer.xsd 
    <xsd:schema xmlns="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 

               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 

               xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf"

               xmlns:sql="urn:schemas-microsoft-com:mapping-schema"

               targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
               elementFormDefault="unqualified"
               attributeFormDefault="qualified"
    >

    <xsd:import schemaLocation="ewsServerIntf.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf" />

              <xsd:element name="LoginResponse" 
                   sql:relation="[xml_alean_login]" 
                   sql:overflow-field="OverflowColumn"
              >
                <xsd:complexType>
                  <xsd:sequence>

                    <xsd:element name="return"    type="NS2:TewsLoginResult" minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)" sql:field="[return]" />
                    <xsd:element name="SessionID" type="xsd:string"          minOccurs="0" maxOccurs="1" sql:datatype="nvarchar(256)" />

                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>

    </xsd:schema>
22 фев 16, 05:32    [18850386]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
ну да, xs:import выбор профессионалов :)
loginr.xsd
+
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
  xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
  xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf"
  targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
  elementFormDefault="unqualified">
  <xs:element name="LoginResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="return" xsi:type="NS2:TewsLoginResult"
          sql:datatype="nvarchar(256)" sql:field="[return]"/>
        <xs:element name="SessionID" xsi:type="xs:string"
          sql:datatype="nvarchar(256)"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
login.xsd
+
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
  targetNamespace="http://schemas.xmlsoap.org/soap/envelope/">
  <xs:import
    namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
    schemaLocation="file:///C:/loginr.xsd"/>
  <xs:element name="Envelope" sql:is-constant="1">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Body" sql:is-constant="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="NS1:LoginResponse"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:anyAttribute processContents="skip"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
22 фев 16, 14:27    [18851050]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
aleks2, почему vbscript, а не powershell (или c#), например?
22 фев 16, 22:06    [18852269]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
andrey odegov
aleks2, почему vbscript, а не powershell (или c#), например?

Этож для примеру. В жизни гружу powershell-ом.

ЗЫ. А на C# у мя идиосинкразия.

ЗЗЫ. Извини, я не уловил сути усовершенствований в твоем варианте. Окромя выкидывания одной схемы "за ненадобностью".
23 фев 16, 07:26    [18852839]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Лучше подскажи: я вот пытаюсь туды identity присобачить...

А оно соспротивляется:
load.vbs(12, 1) General operational error: No data was provided for column 'ID' on table '[xml_alean_login]', and this column cannot contain NULL values.

CREATE TABLE [dbo].[xml_alean_login](
	[OverflowColumn] [ntext] NULL,
	[return] [nvarchar](256) NULL,
	[SessionID] [nvarchar](256) NULL,
	[ID] [int] IDENTITY(1,1) NOT NULL,
PRIMARY KEY CLUSTERED 
(
	[ID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]


    <xsd:schema xmlns="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 
                xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf"
               xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
               xmlns:msd="urn:schemas-microsoft-com:xml-msdata"
               targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
               elementFormDefault="unqualified"
               attributeFormDefault="qualified"
    >

    <xsd:import schemaLocation="ewsServerIntf.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf" />

              <xsd:element name="LoginResponse" 
                   sql:relation="[xml_alean_login]" 
                   sql:overflow-field="OverflowColumn"
              >
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="return"    type="NS2:TewsLoginResult" minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)" sql:field="[return]" />
                    <xsd:element name="SessionID" type="xsd:string"          minOccurs="0" maxOccurs="1" sql:datatype="nvarchar(256)" />
                  </xsd:sequence>

                  <xsd:attribute name="ID" type="xsd:int" sql:field="ID" sql:identity="ignore" msd:AutoIncrement="1" msd:ReadOnly="1"/>

                </xsd:complexType>
              </xsd:element>
    </xsd:schema>
23 фев 16, 07:49    [18852848]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
С identity я разобрался
objBL.KeepIdentity = False
и фсе хоккей.

Новый проблем. Иногда с сервера прилетает ответ
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
    <SOAP-ENV:Body>
        <SOAP-ENV:Fault>
            <faultcode>SOAP-ENV:Server</faultcode>
            <faultstring>as_InvalidSessionID</faultstring>
            <faultactor/>
        </SOAP-ENV:Fault>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>


И его тоже надо сунуть в базу.
Дописываем схему и... облом.
Все содержимое поля Fault попадает в OverflowColumn.
Обидно, да?
Вопщем то понятно - unqualified элементы.
Но хоцца, хотя бы, запихнуть их неразобранным XML в поле и ID приделать.

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
            targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
            elementFormDefault="qualified"
>

<xsd:import schemaLocation="IewsServer.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" />

  <xsd:element name="Envelope" sql:is-constant="1">
    <xsd:complexType>
      <xsd:sequence>

        <xsd:element name="Body" minOccurs="1" maxOccurs="1" sql:is-constant="1" >
          <xsd:complexType>
            <xsd:sequence>

              <xsd:element ref="NS1:LoginResponse"/>

              <xsd:element name="Fault" minOccurs="0" maxOccurs="1"
                   sql:relation="[xml_alean_fault]" 
                   sql:key-fields="ID"
                   sql:overflow-field="OverflowColumn"
              >
               <xsd:complexType>

                 <xsd:sequence>

                   <xsd:element name="faultcode"   type="xsd:string"  minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)"/>
                   <xsd:element name="faultstring" type="xsd:string"  minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)"/>
                   <xsd:element name="faultactor"  type="xsd:string"  minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)"/>

                 </xsd:sequence>

                 <xsd:attribute name="ID" type="xsd:int" default="-1" sql:identity="ignore" />

                </xsd:complexType>
              </xsd:element>

            </xsd:sequence>
            
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>
23 фев 16, 19:07    [18854495]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
aleks2, а где в крайнем xml-файле LoginResponse?
Или Fault добавляется с неопределенными значениями для его елементов?
про ЗЗЫ: нет. вчера почему-то не обрабатывался атрибут "SOAP-ENC:encodingStyle" без <xs:anyAttribute processContents="skip"/>, а сегодня-ок.
23 фев 16, 22:02    [18855143]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
andrey odegov
aleks2, а где в крайнем xml-файле LoginResponse?
Или Fault добавляется с неопределенными значениями для его елементов?
про ЗЗЫ: нет. вчера почему-то не обрабатывался атрибут "SOAP-ENC:encodingStyle" без <xs:anyAttribute processContents="skip"/>, а сегодня-ок.


LoginResponse там отсутствует. И это правильно.
Грузить файл это не мешает.
Там получается ДВЕ таблицы
xml_alean_logon
xml_alean_fault

Нет LoginResponse - ничо не грузится в xml_alean_logon.

Fault имеет вполне четкую структуру - она полностью присутствует в примере.
24 фев 16, 05:48    [18855705]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Лучшее - враг хорошего.

Решил еще усовершенствовать. Ну и опять грабли
+

-- данные resp.xml 
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
	<SOAP-ENV:Body SOAP-ENC:encodingStyle="http://schemas.xmlsoap.org/soap/envelope/" xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf">
		<NS1:LoginResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer">
			<return xsi:type="NS2:TewsLoginResult">lrSuccess</return>
			<SessionID xsi:type="xsd:string">{245C9AB2-F142-48CA-AAB6-BABEBC6239B8}</SessionID>
		</NS1:LoginResponse>
	</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

-- основная схема schema.xsd 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
            xmlns:msd="urn:schemas-microsoft-com:xml-msdata"
            targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
            elementFormDefault="qualified"
>
<xsd:import schemaLocation="IewsServer.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" />

  <xsd:annotation>
    <xsd:appinfo>

      <sql:relationship name="B2LR"
          parent="alean_body"
          parent-key="ID"
          child="alean_login"
          child-key="bodyID" 
      />

    </xsd:appinfo>
  </xsd:annotation>

  <xsd:element name="Envelope" sql:is-constant="1">
    <xsd:complexType>
      <xsd:sequence>

        <xsd:element name="Body" minOccurs="1" maxOccurs="1" 
                   sql:relation="[alean_body]" 
                   sql:key-fields="ID"
                   sql:overflow-field="OverflowColumn"
        >
          <xsd:complexType>
            <xsd:sequence>

              <xsd:element ref="NS1:LoginResponse" minOccurs="0" maxOccurs="1"
                   sql:relation="[alean_login]" 
                   sql:relationship="B2LR"
                   sql:overflow-field="OverflowColumn"
              />

            </xsd:sequence>

            <xsd:attribute name="ID" type="xsd:int" default="-1" sql:identity="ignore" msd:AutoIncrement="1" msd:ReadOnly="1"/>
            
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>

-- IewsServer.xsd
    <xsd:schema xmlns="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 
                xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf"
               xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
               xmlns:msd="urn:schemas-microsoft-com:xml-msdata"
               targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
               elementFormDefault="unqualified"
               attributeFormDefault="qualified"
    >

    <xsd:import schemaLocation="ewsServerIntf.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf" />

              <xsd:element name="LoginResponse" 
              >
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="return"    type="NS2:TewsLoginResult" minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)" sql:field="[ret]" />
                    <xsd:element name="SessionID" type="xsd:string"          minOccurs="0" maxOccurs="1" sql:datatype="nvarchar(256)" />
                  </xsd:sequence>

                  <xsd:attribute name="ID" type="xsd:int" sql:field="ID" sql:identity="ignore" msd:AutoIncrement="1" msd:ReadOnly="1"/>

                </xsd:complexType>
              </xsd:element>
    </xsd:schema>

-- ewsServerIntf.xsd
    <xsd:schema 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

               xmlns="urn:webservice-electrasoft-ru:types-ewsServerIntf" 
               targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf"
               elementFormDefault="qualified"
    >
      <xsd:simpleType name="TewsLoginResult">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="lrSuccess" />
          <xsd:enumeration value="lrMustChangePassword" />
          <xsd:enumeration value="lrRestrictedAccess" />
          <xsd:enumeration value="lrInternetAccessDenied" />
          <xsd:enumeration value="lrAccessDenied" />
          <xsd:enumeration value="lrUserAccountClosed" />
          <xsd:enumeration value="lrExpiredDigestPassword" />
        </xsd:restriction>
      </xsd:simpleType>
      <xsd:simpleType name="TewsInternalMessageReadUnreadType">
        <xsd:restriction base="xsd:string">
          <xsd:enumeration value="imrtRead" />
          <xsd:enumeration value="imrtUnead" />
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:schema>


-- таблицы
CREATE TABLE [dbo].[alean_body](
	[OverflowColumn] [ntext] NULL,
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[Fault] [xml] NULL,
 PRIMARY KEY CLUSTERED( [ID] ASC )
)
GO

CREATE TABLE [dbo].[alean_login](
	[OverflowColumn] [ntext] NULL,
	[ret] [nvarchar](256) NULL,
	[SessionID] [nvarchar](256) NULL,
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[bodyID] [int] NULL,
PRIMARY KEY CLUSTERED ( [ID] ASC )
) 
GO

ALTER TABLE [dbo].[alean_login]  WITH NOCHECK ADD  CONSTRAINT [alean_login_fk] FOREIGN KEY([bodyID]) REFERENCES [dbo].[alean_body] ([ID])
GO


Dim objBL 
Set objBL = CreateObject("SQLXMLBulkLoad.SQLXMLBulkload.4.0")
objBL.ConnectionString = "provider=SQLOLEDB;data source=.\moretravel;database=tempdb;integrated security=SSPI"
objBL.ErrorLogFile = "error.log"

objBL.SchemaGen = True
objBL.SGDropTables = False
objBL.KeepIdentity = False

objBL.Execute "Schema.xsd", "resp.xml"
Set objBL = Nothing



Чего у меня bodyID в alean_login не заполняется?
24 фев 16, 12:31    [18856614]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
На сообщение "сегодня, 05:48"
login.xml
+
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body
    SOAP-ENC:encodingStyle="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf">
    <NS1:LoginResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer">
      <return type="NS2:TewsLoginResult">lrSuccess</return>
      <SessionID type="xsd:string">{245C9AB2-F142-48CA-AAB6-BABEBC6239B8}</SessionID>
    </NS1:LoginResponse>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
fault.xml
+
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
  <SOAP-ENV:Body>
    <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Server</faultcode>
      <faultstring>as_InvalidSessionID</faultstring>
      <faultactor/>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
loginr.xsd
+
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
  xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
  xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf"
  targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
  elementFormDefault="qualified">
  <xs:element name="LoginResponse" sql:relation="xml_alean_login">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="return"
          form="unqualified" xsi:type="NS2:TewsLoginResult"
          sql:datatype="nvarchar(256)" sql:field="[return]"/>
        <xs:element name="SessionID"
          form="unqualified" type="xs:string"
          sql:datatype="nvarchar(256)"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
login.xsd
+
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
  targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
  elementFormDefault="qualified">
  <xs:import schemaLocation="file:///C:/PROJECTS/xml/loginr.xsd"
    namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"/>
  <xs:element name="Envelope" sql:is-constant="1">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Body" sql:is-constant="1">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="NS1:LoginResponse"/>
              <xs:element name="Fault" sql:relation="xml_alean_fault">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="faultcode"
                      form="unqualified" type="xs:string"
                      sql:datatype="nvarchar(256)"/>
                    <xs:element name="faultstring"
                      form="unqualified" type="xs:string"
                      sql:datatype="nvarchar(256)"/>
                    <xs:element name="faultactor"
                      form="unqualified" type="xs:string"
                      sql:datatype="nvarchar(256)"/>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
            <xs:anyAttribute processContents="skip"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
login.ps1
+
cls
$erroractionpreference='stop'
$path=split-path $myinvocation.mycommand.path
$sxbl=new-object -com sqlxmlbulkload.sqlxmlbulkload.4.0
$sxbl.errorlogfile=join-path $path error.xml
$sxbl.checkconstraints=$true
$sxbl.schemagen=$true
$sxbl.sgdroptables=$true
$sxbl.keepidentity=$true
$sxbl.connectionstring=@'
provider=sqloledb.1;
data source=sqlserver;
initial catalog=tempdb;
user id=user;password=password;
persist security info=true
'@
$fxs=join-path $path login.xsd
"login","fault"|%{
  $sxbl.execute($fxs,(join-path $path "$_.xml"))
  $sxbl.sgdroptables=$false
}
write-host done
24 фев 16, 19:34    [18859278]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Так же я вечно буду совершенствовать. Я ужо закинул fault как XML-поле и успокоился.
А тут, оказывается, можно и разобрать...
25 фев 16, 05:29    [18860197]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
Bulkload does not understand xsd:choice,xsd:group
26 фев 16, 07:20    [18865494]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
andrey odegov
Bulkload does not understand xsd:choice,xsd:group

Не, я тебе очень признателен за помощь, но эту ссылку я не понял: к чему она?

Ну и очередной вопрос:
Вот ответ сервера. Как видно, он шлет данные строкой. Это конечно XML, но экранированный.
Я могу забросить строку на сервер и разобрать там. НО!
Внимание вопрос:
Есть какое народное средство превратить экранированный XML в нормальный? Powershell-ом.
+
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENC:encodingStyle="http://schemas.xmlsoap.org/soap/envelope/">
<NS1:GetHotelDetailListResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService">
<return xsi:type="xsd:string">
<HotelList xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList">
<Hotel HotelShortName="Baltic Hotel Imperial" HotelName="Baltic Hotel Imperial" HotelTypeShortName="Отель" HotelTypeName="Отель" HotelCategoryName="4 звезды" TownName="Таллин" CountryName="Эстония" AvailableStatus="AVAILABLE">
<TourList><Tour TourShortName="Эстония, проживание" TourName="Эстония, проживание"/>
</TourList><HotelGroupList><HotelGroup HotelGroupShortName="Эстония, отели" HotelGroupName="Эстония, отели"/><HotelGroup HotelGroupShortName="Таллинн" HotelGroupName="Таллинн"/></HotelGroupList><RoomCategoryList><RoomCategory RoomTypeShortName="Suite" RoomTypeName="Suite" RoomCategoryShortName="de lux 2-местный" RoomCategoryName="DBL " BaseSeatQuantity="2" ExtSeatQuantity="1"/><RoomCategory RoomTypeShortName="Junior Suit " RoomTypeName="Junior Suit " RoomCategoryShortName="2-местный" RoomCategoryName="DBL" BaseSeatQuantity="2" ExtSeatQuantity="1"/><RoomCategory RoomTypeShortName="Familly" RoomTypeName="Familly" RoomCategoryShortName="room 2-местный" RoomCategoryName="DBL " BaseSeatQuantity="2" ExtSeatQuantity="1"/><RoomCategory RoomTypeShortName="Standart" RoomTypeName="Standart" RoomCategoryShortName="1-местный" RoomCategoryName="SGL " BaseSeatQuantity="1" ExtSeatQuantity="0"/><RoomCategory RoomTypeShortName="Standart" RoomTypeName="Standart" RoomCategoryShortName="2-местный" RoomCategoryName="DBL" BaseSeatQuantity="2" ExtSeatQuantity="1"/></RoomCategoryList></Hotel></HotelList>
</return>
</NS1:GetHotelDetailListResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
26 фев 16, 09:27    [18865727]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Oops! Движок форума понимает.

Но в ответе вот так:

<return xsi:type="xsd:string">
<HotelList xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList">
<Hotel HotelShortName="Baltic Hotel Imperial" HotelName="Baltic Hotel Imperial" HotelTypeShortName="Отель" HotelTypeName="Отель" HotelCategoryName="4 звезды" TownName="Таллин" CountryName="Эстония" AvailableStatus="AVAILABLE">
<TourList><Tour TourShortName="Эстония, проживание" TourName="Эстония, проживание"/>
</TourList><HotelGroupList><HotelGroup HotelGroupShortName="Эстония, отели" HotelGroupName="Эстония, отели"/><HotelGroup HotelGroupShortName="Таллинн" HotelGroupName="Таллинн"/></HotelGroupList><RoomCategoryList><RoomCategory RoomTypeShortName="Suite" RoomTypeName="Suite" RoomCategoryShortName="de lux 2-местный" RoomCategoryName="DBL " BaseSeatQuantity="2" ExtSeatQuantity="1"/><RoomCategory RoomTypeShortName="Junior Suit " RoomTypeName="Junior Suit " RoomCategoryShortName="2-местный" RoomCategoryName="DBL" BaseSeatQuantity="2" ExtSeatQuantity="1"/><RoomCategory RoomTypeShortName="Familly" RoomTypeName="Familly" RoomCategoryShortName="room 2-местный" RoomCategoryName="DBL " BaseSeatQuantity="2" ExtSeatQuantity="1"/><RoomCategory RoomTypeShortName="Standart" RoomTypeName="Standart" RoomCategoryShortName="1-местный" RoomCategoryName="SGL " BaseSeatQuantity="1" ExtSeatQuantity="0"/><RoomCategory RoomTypeShortName="Standart" RoomTypeName="Standart" RoomCategoryShortName="2-местный" RoomCategoryName="DBL" BaseSeatQuantity="2" ExtSeatQuantity="1"/></RoomCategoryList></Hotel></HotelList>
</return>
26 фев 16, 09:30    [18865742]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Чорт!
<return xsi:type="xsd:string">
Всюду вместо <>
& lt; & gt;
</return>
26 фев 16, 09:33    [18865753]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
aleks2
andrey odegov
Bulkload does not understand xsd:choice,xsd:group

Не, я тебе очень признателен за помощь, но эту ссылку я не понял: к чему она?
Если такой xml возможен
+
<?xml version="1.0" encoding="utf-8"?>
<SOAP-ENV:Envelope
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
  <SOAP-ENV:Body
    SOAP-ENC:encodingStyle="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf">
    <NS1:LoginResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer">
      <return type="NS2:TewsLoginResult">lrSuccess</return>
      <SessionID type="xsd:string">{245C9AB2-F142-48CA-AAB6-BABEBC6239B8}</SessionID>
    </NS1:LoginResponse>
    <SOAP-ENV:Fault>
      <faultcode>SOAP-ENV:Server</faultcode>
      <faultstring>as_InvalidSessionID</faultstring>
      <faultactor/>
    </SOAP-ENV:Fault>
  </SOAP-ENV:Body>
</SOAP-ENV:Envelope>
то choice в данном случае не нужен.
Но если или LoginResponse, или Fault, то без choice никак.
А group за компанию попал.
26 фев 16, 23:39    [18870148]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
andrey odegov
Но если или LoginResponse, или Fault, то без choice никак.
А group за компанию попал.


Я, видимо, про это не знал.
Поэтому у мя все грузится или/или.
27 фев 16, 05:37    [18870623]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Схемы. Там даже немножко больше теперь грузится - еще и logout.
+

-- login.xsd
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:NS1="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
            xmlns:msd="urn:schemas-microsoft-com:xml-msdata"
            targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
            elementFormDefault="qualified"
>
<xsd:import schemaLocation="IewsServer.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" />

  <xsd:annotation>
   <xsd:appinfo>

    <sql:relationship name="BLR"
          parent="[alean_body]"
          parent-key="bodyID"
          child="[alean_login]"
          child-key="bodyID" />

    <sql:relationship name="BF"
          parent="[alean_body]"
          parent-key="bodyID"
          child="[alean_fault]"
          child-key="bodyID" />

   </xsd:appinfo>
  </xsd:annotation>

  <xsd:element name="Envelope" sql:is-constant="1">
    <xsd:complexType>
      <xsd:sequence>

        <xsd:element name="Body" minOccurs="1" maxOccurs="1" 
                   sql:relation="[alean_body]" 
                   sql:key-fields="dummy bodyID"
                   sql:overflow-field="OverflowColumn"
        >
          <xsd:complexType>
            <xsd:sequence>

              <xsd:element ref="NS1:LoginResponse" minOccurs="0" maxOccurs="1"/>

              <xsd:element ref="NS1:LogoutResponse" minOccurs="0" maxOccurs="1"/>

              <xsd:element name="Fault" minOccurs="0" maxOccurs="1"
                          sql:relation="[alean_fault]"
                          sql:key-fields="faultID"
                          sql:relationship="BF"
                          sql:overflow-field="OverflowColumn"
              >
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="faultcode"   form="unqualified" type="xsd:string" sql:datatype="nvarchar(256)"/>
                    <xsd:element name="faultstring" form="unqualified" type="xsd:string" sql:datatype="nvarchar(256)"/>
                    <xsd:element name="faultactor"  form="unqualified" type="xsd:string" sql:datatype="nvarchar(256)"/>
                  </xsd:sequence>

                  <xsd:attribute name="bodyID" type="xsd:int" default="-1" />
                  <xsd:attribute name="faultID" type="xsd:int" default="-1" />

                </xsd:complexType>
              </xsd:element>

            </xsd:sequence>

            <xsd:attribute name="bodyID" type="xsd:int" default="-1" />
            <xsd:attribute name="dummy"  type="xsd:int" default="0" />
            <xsd:anyAttribute processContents="skip"/>
   
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>

-- IewsServer.xsd
    <xsd:schema xmlns="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer" 
               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
               xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
               xmlns:NS2="urn:webservice-electrasoft-ru:types-ewsServerIntf"
               targetNamespace="urn:webservice-electrasoft-ru:types-ewsServerIntf-IewsServer"
               elementFormDefault="unqualified"
    >

    <xsd:import schemaLocation="ewsServerIntf.xsd" namespace="urn:webservice-electrasoft-ru:types-ewsServerIntf" />

              <xsd:element name="LoginResponse" 
                   sql:relation="[alean_login]" 
                   sql:key-fields="what loginID"
                   sql:relationship="BLR"
                   sql:overflow-field="OverflowColumn"
              >
                <xsd:complexType>
                  <xsd:sequence>

                    <xsd:element name="return"    type="NS2:TewsLoginResult" minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)" sql:field="[ret]" />
                    <xsd:element name="SessionID" type="xsd:string"          minOccurs="0" maxOccurs="1" sql:datatype="nvarchar(256)" />

                  </xsd:sequence>

                  <xsd:attribute name="bodyID"  type="xsd:int" default="-1" />
                  <xsd:attribute name="loginID" type="xsd:int" default="-1" />
                  <xsd:attribute name="what" type="xsd:string" default="login" sql:datatype="nvarchar(64)" />
 
                </xsd:complexType>
              </xsd:element>

              <xsd:element name="LogoutResponse" 
                   sql:relation="[alean_login]" 
                   sql:key-fields="what loginID"
                   sql:relationship="BLR"
                   sql:overflow-field="OverflowColumn"
              >
                <xsd:complexType>

                  <xsd:sequence>

                    <xsd:element name="return"    type="NS2:TewsLoginResult" minOccurs="1" maxOccurs="1" sql:datatype="nvarchar(256)" sql:field="[ret]" />
                    <xsd:element name="SessionID" type="xsd:string"          minOccurs="0" maxOccurs="1" sql:datatype="nvarchar(256)" />

                  </xsd:sequence>

                  <xsd:attribute name="bodyID"  type="xsd:int" default="-1" />
                  <xsd:attribute name="loginID" type="xsd:int" default="-1" />
                  <xsd:attribute name="what" type="xsd:string" default="logout" sql:datatype="nvarchar(64)" />
 
                </xsd:complexType>
              </xsd:element>

    </xsd:schema>

Меня щас больше быстрое потоковое преобразование "экранированный XML" -> "нормальный XML".
Непотоковое я нашел [System.Web.HttpUtility]::HtmlDecode. Но хочется правильно сделать.
27 фев 16, 06:10    [18870631]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
как-то так
+
$xml=@'
<return xsi:type="xs:string"
  xmlns:xs="http://www.w3.org/2001/XMLSchema"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <HotelList xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList">
    <Hotel HotelShortName="Baltic Hotel Imperial"
      HotelName="Baltic Hotel Imperial" HotelTypeShortName="Отель"
      HotelTypeName="Отель" HotelCategoryName="4 звезды" TownName="Таллин"
      CountryName="Эстония" AvailableStatus="AVAILABLE">
      <TourList>
        <Tour TourShortName="Эстония, проживание"
          TourName="Эстония, проживание"/>
      </TourList>
      <HotelGroupList>
        <HotelGroup HotelGroupShortName="Эстония, отели"
          HotelGroupName="Эстония, отели"/>
        <HotelGroup HotelGroupShortName="Таллинн"
          HotelGroupName="Таллинн"/>
      </HotelGroupList>
      <RoomCategoryList>
        <RoomCategory RoomTypeShortName="Suite" RoomTypeName="Suite"
          RoomCategoryShortName="de lux 2-местный" RoomCategoryName="DBL"
          BaseSeatQuantity="2" ExtSeatQuantity="1"/>
        <RoomCategory RoomTypeShortName="Junior Suit" RoomTypeName="Junior Suit"
          RoomCategoryShortName="2-местный" RoomCategoryName="DBL"
          BaseSeatQuantity="2" ExtSeatQuantity="1"/>
        <RoomCategory RoomTypeShortName="Familly" RoomTypeName="Familly"
          RoomCategoryShortName="room 2-местный" RoomCategoryName="DBL"
          BaseSeatQuantity="2" ExtSeatQuantity="1"/>
        <RoomCategory RoomTypeShortName="Standart" RoomTypeName="Standart"
          RoomCategoryShortName="1-местный" RoomCategoryName="SGL"
          BaseSeatQuantity="1" ExtSeatQuantity="0"/>
        <RoomCategory RoomTypeShortName="Standart" RoomTypeName="Standart"
          RoomCategoryShortName="2-местный" RoomCategoryName="DBL"
          BaseSeatQuantity="2" ExtSeatQuantity="1"/>
      </RoomCategoryList>
    </Hotel>
  </HotelList>
</return>
'@
$subs=@'
<!entity lt "<">
<!entity gt ">">
'@
cls
$erroractionpreference='stop'
$xpcpar=$null,$null,'psp',$null,$null,$subs,'','','none'
$xpc=new-object xml.xmlparsercontext $xpcpar
try{
  $xtr=new-object xml.xmltextreader $xml,'element',$xpc
  [void]$xtr.movetocontent()
  write-host $xtr.readstring()
}finally{if($xtr){$xtr.close()}}
27 фев 16, 08:41    [18870687]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
andrey odegov
Member

Откуда:
Сообщений: 474
ёлы-палы

К сообщению приложен файл (return.ps1 - 2Kb) cкачать
27 фев 16, 08:43    [18870688]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
andrey odegov
ёлы-палы

Да. Круто. Только слишком круто.
Мне не надо вытаскивать содержимое экранированного XML.
Практичнее конвертнуть весь файл (т.е. прямо внутри).
А потом загрузить bulkload-ом.
29 фев 16, 06:21    [18875571]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Вопщем, я пока сваял так

$StreamWriter = [System.IO.StreamWriter] "GetHotelDetailList.xml.xml"
[System.Web.HttpUtility]::HtmlDecode( [IO.File]::ReadAllText("GetHotelDetailList.xml"), $StreamWriter )
$StreamWriter.Close()


Оно, конечно, работает... но непотоково это. Абидно.
29 фев 16, 10:32    [18875979]     Ответить | Цитировать Сообщить модератору
 Re: sqlXmlBulkLoad или загадки загрузки сложно именованных xml  [new]
aleks2
Guest
Еще один затык <HotelList xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList">.
Вроде оно все "как раньше"
+
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body SOAP-ENC:encodingStyle="http://schemas.xmlsoap.org/soap/envelope/">

<NS1:GetHotelDetailListResponse xmlns:NS1="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService">
<return xsi:type="xsd:string">
<HotelList xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList">

<Hotel HotelShortName="Яш-Тан (Абзаково)" HotelName="Яш-Тан (Абзаково)" HotelTypeShortName="Гостиница" HotelTypeName="Гостиница" TownName="Абзаково" AreaName="Белорецкий район" RegionName="Башкортостан" CountryName="Россия" AvailableStatus="AVAILABLE">

  <TourList>
   <Tour TourShortName="Абзаково-Банное" TourName="Абзаково-Банное"/>
   <Tour TourShortName="Абзаково-Банное (ЛЕТО)" TourName="Абзаково-Банное (ЛЕТО)" AvailableStatus="NOT_AVAILABLE"/>
   <Tour TourShortName="Абзаково-Банное(GO)" TourName="Абзаково-Банное(GO)" AvailableStatus="NOT_AVAILABLE"/>
 </TourList>

 <HotelGroupList>
  <HotelGroup HotelGroupShortName="Абзаково" HotelGroupName="Абзаково"/>
 </HotelGroupList>

 <RoomCategoryList>
  <RoomCategory RoomTypeShortName="Полулюкс" RoomTypeName="Полулюкс" RoomCategoryShortName="2-местный " RoomCategoryName="2-местный" BaseSeatQuantity="2" ExtSeatQuantity="2"/>
  <RoomCategory RoomTypeShortName="Люкс" RoomTypeName="Люкс" RoomCategoryShortName="2-местный 2-комнатный" RoomCategoryName="2-местный 2-комнатный" BaseSeatQuantity="2" ExtSeatQuantity="2"/>
  <RoomCategory RoomTypeShortName="Люкс" RoomTypeName="Люкс" RoomCategoryShortName="Сруб 1-й этаж" RoomCategoryName="Сруб 1-й этаж" BaseSeatQuantity="2" ExtSeatQuantity="3"/>
  <RoomCategory RoomTypeShortName="Стандартный" RoomTypeName="Стандартный" RoomCategoryShortName="2-местный " RoomCategoryName="2-местный й" BaseSeatQuantity="2" ExtSeatQuantity="3"/>
  <RoomCategory RoomTypeShortName="Эконом" RoomTypeName="Эконом" RoomCategoryShortName="2-местный" RoomCategoryName="2-местный" BaseSeatQuantity="2" ExtSeatQuantity="2"/>
  <RoomCategory RoomTypeShortName="Эконом" RoomTypeName="Эконом" RoomCategoryShortName="Сруб 2-ой этаж " RoomCategoryName="Сруб 2-ой этаж " BaseSeatQuantity="2" ExtSeatQuantity="3"/>
 </RoomCategoryList>

</Hotel>

</HotelList>
</return>
</NS1:GetHotelDetailListResponse>

</SOAP-ENV:Body>
</SOAP-ENV:Envelope>


рисуем схему GetData1.xsd
+
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
            xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
            xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
            xmlns:NS1="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService"
            xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
            xmlns:msd="urn:schemas-microsoft-com:xml-msdata"
            targetNamespace="http://schemas.xmlsoap.org/soap/envelope/"
            elementFormDefault="qualified"
>
<xsd:import schemaLocation="ItwsReservationService1.xsd" namespace="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService" />

  <xsd:annotation>
   <xsd:appinfo>

    <sql:relationship name="BHL"
          parent="[alean_body]"
          parent-key="bodyID"
          child="[alean_hotels]"
          child-key="bodyID" />

    <sql:relationship name="BF"
          parent="[alean_body]"
          parent-key="bodyID"
          child="[alean_fault]"
          child-key="bodyID" />

    <sql:relationship name="BHD"
          parent="[alean_body]"
          parent-key="bodyID"
          child="[alean_descrs]"
          child-key="bodyID" />

   </xsd:appinfo>
  </xsd:annotation>

  <xsd:element name="Envelope" sql:is-constant="1">
    <xsd:complexType>
      <xsd:sequence>

        <xsd:element name="Body" minOccurs="1" maxOccurs="1" 
                   sql:relation="[alean_body]" 
                   sql:key-fields="dummy bodyID"
                   sql:overflow-field="OverflowColumn"
        >
          <xsd:complexType>
            <xsd:sequence>

              <xsd:element ref="NS1:GetAvailableHotelListResponse" minOccurs="0" maxOccurs="1"/>

              <xsd:element ref="NS1:GetHotelDetailListResponse" minOccurs="0" maxOccurs="1"/>

              <xsd:element name="Fault" minOccurs="0" maxOccurs="1"
                          sql:relation="[alean_fault]"
                          sql:key-fields="faultID"
                          sql:relationship="BF"
                          sql:overflow-field="OverflowColumn"
              >
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name="faultcode"   form="unqualified" type="xsd:string" sql:datatype="nvarchar(256)"/>
                    <xsd:element name="faultstring" form="unqualified" type="xsd:string" sql:datatype="nvarchar(256)"/>
                    <xsd:element name="faultactor"  form="unqualified" type="xsd:string" sql:datatype="nvarchar(256)"/>
                  </xsd:sequence>

                  <xsd:attribute name="bodyID" type="xsd:int" default="-1" />
                  <xsd:attribute name="faultID" type="xsd:int" default="-1" />

                </xsd:complexType>
              </xsd:element>

            </xsd:sequence>

            <xsd:attribute name="bodyID" type="xsd:int" default="-1" />
            <xsd:attribute name="dummy"  type="xsd:int" default="0" />
            <xsd:anyAttribute processContents="skip"/>
   
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

</xsd:schema>


ItwsReservationService1.xsd
+
    <xsd:schema xmlns="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService" 

               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

               xmlns:sql="urn:schemas-microsoft-com:mapping-schema"

               xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
               xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"

               xmlns:hl="urn:schemas-som-ru:tws-reservationHotelDetailList"

               targetNamespace="urn:webservice-electrasoft-ru:types-twsReservationServiceIntf-ItwsReservationService"
               elementFormDefault="unqualified"
    >

    <xsd:import schemaLocation="HotelList.xsd" namespace="urn:schemas-som-ru:tws-reservationHotelDetailList" />


              <xsd:element name="GetAvailableHotelListResponse" sql:is-constant="1">
                <xsd:complexType>
                  <xsd:sequence>

                     <xsd:element name="return" sql:is-constant="1" minOccurs="0" maxOccurs="1">
                      <xsd:complexType>
                        <xsd:sequence>

                         <xsd:element name="item" 
                                      sql:relation="[alean_hotels]" 
                                      sql:relationship="BHL"
                                      sql:key-fields="hotelID"
                                      sql:overflow-field="OverflowColumn"
                                      minOccurs="0" maxOccurs="unbounded" sql:datatype="nvarchar(256)" sql:field="hotelID"
                         >
                          <xsd:complexType>
                           <xsd:simpleContent>
                            <xsd:extension base="xsd:string" >
                              <xsd:attribute name="bodyID" type="xsd:int" default="-1" />
                            </xsd:extension>
                           </xsd:simpleContent>
                          </xsd:complexType>
                         </xsd:element>

                        </xsd:sequence>

                        <xsd:anyAttribute processContents="skip"/>

                      </xsd:complexType>
                     </xsd:element>


                  </xsd:sequence>

                  <xsd:anyAttribute processContents="skip"/>

                </xsd:complexType>
              </xsd:element>


              <xsd:element name="GetHotelDetailListResponse" sql:is-constant="1">
                <xsd:complexType>
                  <xsd:sequence>

                     <xsd:element name="return" sql:is-constant="1" minOccurs="0" maxOccurs="1">
                      <xsd:complexType>
                        <xsd:sequence>

                          <xsd:element ref="hl:HotelList"/>

                        </xsd:sequence>

                        <xsd:anyAttribute processContents="skip"/>

                      </xsd:complexType>
                     </xsd:element>

                  </xsd:sequence>

                  <xsd:anyAttribute processContents="skip"/>

                </xsd:complexType>
              </xsd:element>

    </xsd:schema>


HotelList.xsd
+
    <xsd:schema xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList"

               xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

               xmlns:sql="urn:schemas-microsoft-com:mapping-schema"

               targetNamespace="urn:schemas-som-ru:tws-reservationHotelDetailList"
               elementFormDefault="unqualified"
    >

                          <xsd:element name="HotelList" sql:is-constant="1" >
                           <xsd:complexType>
                            <xsd:sequence>

                               <xsd:element name="Hotel" minOccurs="0" maxOccurs="unbounded" 
                                      sql:relation="[alean_descrs]" 
                                      sql:key-fields="hotelID"
                                      sql:relationship="BHD"
                                      sql:overflow-field="OverflowColumn"
                               >
                                <xsd:complexType>

                                 <xsd:attribute name="bodyID"             type="xsd:int" default="-1" />
                                 <xsd:attribute name="HotelShortName"     type="xsd:string" sql:datatype="nvarchar(256)" sql:field="hotelID" />
                                 <xsd:attribute name="HotelName"          type="xsd:string" sql:datatype="nvarchar(256)" />
                                 <xsd:attribute name="HotelTypeShortName" type="xsd:string" sql:datatype="nvarchar(256)" />
                                 <xsd:attribute name="HotelTypeName"      type="xsd:string" sql:datatype="nvarchar(256)" />
                                 <xsd:attribute name="TownName"           type="xsd:string" sql:datatype="nvarchar(256)" />
                                 <xsd:attribute name="AreaName"           type="xsd:string" sql:datatype="nvarchar(256)" />
                                 <xsd:attribute name="RegionName"         type="xsd:string" sql:datatype="nvarchar(256)" />
                                 <xsd:attribute name="CountryName"        type="xsd:string" sql:datatype="nvarchar(256)" />
                                 <xsd:attribute name="AvailableStatus"    type="xsd:string" sql:datatype="varchar(256)" />

                                </xsd:complexType>
                               </xsd:element>

                            </xsd:sequence>
                           </xsd:complexType>
                          </xsd:element>


    </xsd:schema>


И не грузится.
Если удалить в данных <HotelList xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList">
схему xmlns="urn:schemas-som-ru:tws-reservationHotelDetailList" и перенести содержисое HotelList.xsd в ItwsReservationService1.xsd
все начинает работать.

Но хочется ведь без таких фокусов.
1 мар 16, 05:42    [18880240]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить