XSD:如何编码字符串长度> 255?

时间:2011-02-08 18:52:45

标签: sql-server-2008 ssis xsd xsd-validation

我尝试使用以下代码从XML导入字符串

<xs:element minOccurs="0" name="FIELDNAME" type="xs:string" />

但有些字段超过255个字符。所以我尝试添加更多字符:

<xs:element minOccurs="0" name="FIELDNAME">
    <xs:simpleType>
        <xs:restriction base="xs:string">
            <xs:maxLength value="1024" />
        </xs:restriction>
    </xs:simpleType>
</xs:element>

验证失败的数据长度为194个字符,包括CDATA。它不包括单引号(它们用于显示空格):

<FIELDNAME><![CDATA[
                                                              '
900207 4.5" FOOTED BOWL                      <BR>
                                                                       '
]]></FIELDNAME>

SQL Server SSIS 2008中的错误是:

Error: 0xC02090FA at Import, XML Source [1]: The "component "XML Source" (1)" 
failed because truncation occurred, and the truncation row disposition on 
"output column "FIELDNAME" (149)"  at "output "DATA" (10)" specifies failure
on truncation. A truncation error occurred on the specified object of the
specified component.

如何构建首先列出的XML模式以无错误地导入此数据?

3 个答案:

答案 0 :(得分:4)

嗯......好吧,如果它不知道DB,那就试试吧。

如果右键单击xml源组件,是否有“显示高级编辑器”选项?

如果是这样,请转到输入和输出属性选项卡,从那里可以更改列元数据。

答案 1 :(得分:2)

如果截断不是问题(虽然我假设它是),您可以从该列的XML Source设置错误输出,以忽略错误或重定向行。

答案 2 :(得分:1)

您确定它不是对数据库中列本身的限制吗?

我刚刚访问了此问题,将字段类型从“文本”更改为“备忘录”。

也许您需要将您的更改为varchar(max)。 (注意:Max是一个关键字,而不是要插入的数字)