无法生成 类,因为未找到具有复杂类型的顶级元素

Cannot generate classes because no top-level elements with complex type were found

我正在尝试使用 xsd.exe 从 xsd 文件创建 类,但是得到这个:

Warning: cannot generate classes because no top-level elements with complex type were found.

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by (EMBRACE) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://comp.com/service/model/extension" targetNamespace="http://comp.com/service/model/extension">
    <xs:complexType name="attachment">
        <xs:sequence>
            <xs:element name="fileIdentifier" type="xs:string" minOccurs="0"></xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="metadataSystem">
        <xs:sequence>
            <xs:element name="activityId" type="xs:string" minOccurs="0"></xs:element>
            <xs:element name="from" type="xs:long" minOccurs="0"></xs:element>
            <xs:element name="href" type="xs:string" minOccurs="0"></xs:element>
            <xs:element name="performers" type="xs:long" minOccurs="0"></xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>

我在哪里有这个顶级元素? 如果我添加:

<xs:element name="attachment" type="attachment" />

我明白了:

Missing type "attachment"


没用,添加元素标签会抛出新的错误。

声明元素时,必须使用其完全限定名称引用类型,即绑定到目标命名空间的前缀 ns1attachment 之前丢失 类型属性。

这是一个常见的混淆来源,因为类型声明(name 属性)总是仅使用本地名称完成,命名空间部分始终是目标命名空间可用时的架构。

<xs:element name="attachment" type="ns1:attachment" />

只有当类型的命名空间声明为具有 xmlns 属性的默认命名空间时,才能省略前缀。