我正在尝试使用xsd.exe从xsd文件创建类,但得到这个:
警告:无法生成类,因为找不到具有复杂类型的顶级元素。
<?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" />
我明白了:
缺少类型“附件”
This question没有帮助,添加元素标记会抛出新错误。
答案 0 :(得分:0)
声明元素时,必须使用其完全限定名称引用类型,即绑定到目标命名空间的前缀ns1
在中attachment
之前丢失输入属性。
这是常见的混淆源,因为类型声明( name 属性)总是仅使用本地名称完成,命名空间部分始终是架构的目标命名空间(如果可用)
<xs:element name="attachment" type="ns1:attachment" />
如果类型的名称空间被声明为具有xmlns
属性的默认名称空间,则只能省略前缀。