每次尝试使用XMLSpy 2012验证以下xsd文件时,都会出现以下错误:
'凭据'必须引用现有类型。
我确定这是我做的蠢事,但我只是看不到它。
感谢。
<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XMLSpy v2011 rel. 2 (x64) (http://www.altova.com)-->
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:qvd="http://www.MyCompany.com/qvd" targetNamespace="http://www.MyCompany.com/qvd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<annotation>
<documentation>
QueryViewer Defaults config file schema
Copyright 2012 MyCompany. All rights reserved.
</documentation>
</annotation>
<element name="QueryViewerDefaults">
<complexType>
<sequence>
<element name="CompanyName" type="string"/>
<element name="QueryPath" type="string"/>
<element name="Credentials" type="Credentials"/>
</sequence>
<attribute name="created" use="required" type="dateTime"/>
<attribute name="modified" use="required" type="dateTime"/>
<attribute name="fileversion" use="required" type="string"/>
</complexType>
</element>
<complexType name="Credentials">
<sequence>
<element name="Server" type="string"/>
<element name="Database" type="string"/>
<element name="UserID" type="string"/>
<element name="Password" type="string"/>
<element name="IntegratedSecurity" type="boolean" default="false"/>
</sequence>
<attribute name="encrypted" type="boolean" use="optional" default="false"/>
</complexType>
</schema>
答案 0 :(得分:0)
这是因为Credentials
属于http://www.MyCompany.com/qvd
命名空间,因为您在xsd中定义为targetNamespace
。所以改变下面的
<element name="Credentials" type="Credentials"/>
到
<element name="Credentials" type="qvd:Credentials"/>