无法生成 类,因为未找到具有复杂类型的顶级元素
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"
没用,添加元素标签会抛出新的错误。
声明元素时,必须使用其完全限定名称引用类型,即绑定到目标命名空间的前缀 ns1
在 attachment
之前丢失 类型属性。
这是一个常见的混淆来源,因为类型声明(name 属性)总是仅使用本地名称完成,命名空间部分始终是目标命名空间可用时的架构。
<xs:element name="attachment" type="ns1:attachment" />
只有当类型的命名空间声明为具有 xmlns
属性的默认命名空间时,才能省略前缀。
我正在尝试使用 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"
声明元素时,必须使用其完全限定名称引用类型,即绑定到目标命名空间的前缀 ns1
在 attachment
之前丢失 类型属性。
这是一个常见的混淆来源,因为类型声明(name 属性)总是仅使用本地名称完成,命名空间部分始终是目标命名空间可用时的架构。
<xs:element name="attachment" type="ns1:attachment" />
只有当类型的命名空间声明为具有 xmlns
属性的默认命名空间时,才能省略前缀。