Задача потока данных, ошибка источника XML

Я разрабатываю приложение SSIS с VS и SQL Server 2008. Однако я все еще новичок в SSIS.

Я успешно создал один проект с задачей XML, связанной с задачей потока данных. , Но как часть этого же решения я создал идентичный проект с задачей XML, связанной с задачей потока данных.

Из того, что я вижу, единственное различие между этими двумя проектами - файлы. Хотя первый пакет работал без сбоев, второй отказывает из-за следующей ошибки:

Error: 0xC02090FB at Data Flow Task, XML Source [1]: The "component "XML Source" (1)" failed because error code 0x80131537 occurred, and the error row disposition on "output column "WITHDRAWAL_DATE" (1689)" at "output "row" (28)" specifies failure on error. An error occurred on the specified object of the specified component.
Error: 0xC02092AF at Data Flow Task, XML Source [1]: The component "XML Source" (1) was unable to process the XML data. Pipeline component has returned HRESULT error code 0xC02090FB from a method call.

Однако я проверил эти файлы и не вижу, в чем проблема. Как я могу отладить это? Входной XML-файл выглядит следующим образом:

<?xml version="1.0" encoding="utf-8"?>
<rows xmlns="http://www.w3.org/1999/xhtml">
  <row OTHER_ID="100041" GRAD_YR="2011" LAST_NAME="VALENTO" FIRST_NAME="SARA" MIDDLE_NAME="JEAN" BIRTHDATE="1993-01-30" DISTRICT_CODE="" STUDENT_STATUS="A" STUDENT_ID="10172" ALPHAKEY="VALENSAR000" SCHOOL_ID="010" ADVISOR="0" EW_DATE="2007-07-03" ENTRYC_CODE="00" WITHDRAWAL_DATE="2007-08-31" WITHDRAWAL_CODE="99" WITHDRAWAL_SCHOOL_YEAR="2008" WITHDRAWAL_GRAD_YR="2011" X_WITHDRAWAL_RETAINED="false" CY_TEAM_SCHD_ID="" GRADUATED="false" MN_EDE_NBR="624000665509">
  </row>
  <row OTHER_ID="100041" GRAD_YR="2011" LAST_NAME="VALENTO" FIRST_NAME="SARA" MIDDLE_NAME="JEAN" BIRTHDATE="1993-01-30" DISTRICT_CODE="" STUDENT_STATUS="A" STUDENT_ID="10172" ALPHAKEY="VALENSAR000" SCHOOL_ID="010" ADVISOR="0" EW_DATE="2008-07-08" ENTRYC_CODE="00" WITHDRAWAL_DATE="2008-07-24" WITHDRAWAL_CODE="99" WITHDRAWAL_SCHOOL_YEAR="2009" WITHDRAWAL_GRAD_YR="2011" X_WITHDRAWAL_RETAINED="false" CY_TEAM_SCHD_ID="" GRADUATED="false" MN_EDE_NBR="624000665509">
  </row>
  <row OTHER_ID="100041" GRAD_YR="2011" LAST_NAME="VALENTO" FIRST_NAME="SARA" MIDDLE_NAME="JEAN" BIRTHDATE="1993-01-30" DISTRICT_CODE="" STUDENT_STATUS="A" STUDENT_ID="10172" ALPHAKEY="VALENSAR000" SCHOOL_ID="010" ADVISOR="0" EW_DATE="2009-07-07" ENTRYC_CODE="24" WITHDRAWAL_DATE="2009-08-06" WITHDRAWAL_CODE="99" WITHDRAWAL_SCHOOL_YEAR="2010" WITHDRAWAL_GRAD_YR="2011" X_WITHDRAWAL_RETAINED="false" CY_TEAM_SCHD_ID="" GRADUATED="false" MN_EDE_NBR="624000665509">
  </row>

А мой XSD-файл выглядит следующим образом:

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
targetNamespace="http://www.w3.org/1999/xhtml" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="rows">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="row">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="OTHER_ID" type="xs:string" use="optional" />
                <xs:attribute name="GRAD_YR" type="xs:decimal" use="optional" />
                <xs:attribute name="LAST_NAME" type="xs:string" use="optional" />
                <xs:attribute name="FIRST_NAME" type="xs:string" use="optional" />
                <xs:attribute name="MIDDLE_NAME" type="xs:string" use="optional" />
                <xs:attribute name="BIRTHDATE" type="xs:date" use="optional" />
                <xs:attribute name="DISTRICT_CODE" type="xs:string" use="optional" />
                <xs:attribute name="STUDENT_STATUS" type="xs:string" use="optional" />

                <xs:attribute name="STUDENT_ID" type="xs:integer" use="optional" />
                <xs:attribute name="ALPHAKEY" type="xs:string" use="optional" />
                <xs:attribute name="SCHOOL_ID" type="xs:string" use="optional" />
                <xs:attribute name="ADVISOR" type="xs:integer" use="optional" />
                <xs:attribute name="EW_DATE" type="xs:date" use="optional" />
                <xs:attribute name="ENTRYC_CODE" type="xs:string" use="optional" />
                <xs:attribute name="WITHDRAWAL_DATE" type="xs:dateTime" use="optional" />
                <xs:attribute name="WITHDRAWAL_CODE" type="xs:string" use="optional" />
                <xs:attribute name="WITHDRAWAL_SCHOOL_YEAR" type="xs:integer" use="optional" />
                <xs:attribute name="WITHDRAWAL_GRAD_YR" type="xs:integer" use="optional" />
<xs:attribute name="X_WITHDRAWAL_RETAINED" type="xs:boolean" use="optional" />
                <xs:attribute name="CY_TEAM_SCHD_ID" type="xs:string" use="optional" />
                <xs:attribute name="GRADUATED" type="xs:boolean" use="optional" />
                <xs:attribute name="MN_EDE_NBR" type="xs:decimal" use="optional" />

              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Кроме того, когда я игнорирую эту ошибку вывода, выполнение пакета начинается, но затем происходит сбой из-за другой ошибки:

conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value
1
задан skaffman 23 August 2010 в 16:23
поделиться

1 ответ

В вашей XML Schema вы определили, что тип атрибута WITHDRAWAL_DATE является xs:date. Это означает, что содержимое WITHDRAWAL_DATE должно быть в формате YYYY-MM-DDThh:mm:ss. В вашем XML-коде значения атрибута WITHDRAWAL_DATE имеют формат YYYY-DD-MM. Поэтому эти значения не являются допустимыми в соответствии с вашей схемой, и создание XML-документа с такими значениями приведет к созданию недопустимого XML-документа.

XML Schema не имеет встроенного типа данных, который имеет формат YYYY-DD-MM, поэтому вам нужно либо изменить формат, который вы используете в ваших XML документах, либо самостоятельно определить допустимый тип для этого атрибута в вашей схеме.

2
ответ дан 2 September 2019 в 22:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: