【问题标题】:XSD and SSIS: Error finding globally declared complex typeXSD 和 SSIS:查找全局声明的复杂类型时出错
【发布时间】:2019-06-19 14:19:25
【问题描述】:

我完成了为我的 XML 编写 XSD,当我开始在 SSIS 中映射它时,我遇到了一条错误消息:“设置映射时出错。类型'[我的全局声明的复杂类型]'是未声明。”。

因此,我尝试寻找适当的方法来声明可以重用的全局复杂类型,例如地址块。我将复杂类型块移动到不同的位置,例如直接是模式节点的子节点,就在我正在引用的元素节点之前等等。但是,这仍然会导致同样的错误。

这是我的 XSD 的示例格式:

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="urn:Search" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="RESPONSE">
        <xs:complexType>
            <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="ABC">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element minOccurs="0" maxOccurs="1" name="Bus" type="Bus" />
                    </xs:sequence>
                </xs:complexType>
             </xs:element>
             </xs:sequence>
         </xs:complexType>
     </xs:element>

     <xs:complexType name="Bus">
        <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" name="BusType" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="BusSubType" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="Date" type="xs:string" />
        <xs:element minOccurs="1" maxOccurs="1" name="Franchise" type="xs:boolean" />
        <xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
        <xs:element minOccurs="0" maxOccurs="1" name="OperatingSince" type="xs:string" />
        </xs:sequence>
     </xs:complexType>
</xs:schema> 

我希望用我制作的这种 XSD 格式正确映射 XML。

非常感谢大家抽出时间阅读和/或帮助我解决这个问题!

【问题讨论】:

    标签: xml ssis xsd


    【解决方案1】:

    这是一个命名空间问题。全局类型位于包含架构文档的 targetNamespace 中,而 type="Bus" 是对无命名空间中的类型的引用。它必须是 type="s:Bus",其中前缀 s 绑定到 URI urn:Search

    【讨论】:

    • 嗨!您能否详细说明一下:“它必须是 type="s:Bus",其中前缀 s 绑定到 URI urn:Search”。
    • 好的,你好,我成功了,但我只是想澄清一下,因为我仍然很困惑。我通过放置另一个命名空间使其工作:xlms:prop="urn:Search"。然后我将“prop:”插入到我遇到问题的每种类型中。就像为什么我需要声明另一个 xlmns 才能发生这种情况,因为其他关于复杂类型的全局声明的示例似乎没有它。
    • 通过寻找例子来学习一门语言并不总是一种非常有效的方法。为自己获取一份 Walmsley “Definitive XML Schema” 的副本,这在 p52 中有详细说明。
    猜你喜欢
    • 2019-01-04
    • 2022-01-10
    • 2019-04-02
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2012-04-30
    • 2020-07-25
    • 1970-01-01
    相关资源
    最近更新 更多