2014-04-24 66 views
3

使用Visual Studio 2013開發一個XSD Schema,它導入另一個使用其「Neck」類型的Schema。出於某種原因,Visual Studio不喜歡我使用type =「wn:Neck」,導致標題中提到的錯誤。下面是我的父模式,之後是子模式。模式看起來正確,但VS2013不同意。有誰知道爲什麼會發生這種情況?我見過類似的問題,但還沒有找到解決這個問題的直接方法。「Type [namespace:type] is not declared」yet is imported correctly,I think

家長

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      xmlns:wn="http://fxb.co/xsd/warmoth/neck.xsd"   
      targetNamespace="http://fxb.co/xsd/warmoth/customitem.xsd"> 
    <xs:import namespace="http://fxb.co/xsd/warmoth/neck.xsd" schemaLocation="./Neck.xsd"/> 
    <xs:element name="CustomItems"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="CustomItemOption"> 
      <xs:complexType> 
      <xs:sequence>     
       <xs:element minOccurs="0" maxOccurs="unbounded" name="Neck" type="wn:Neck" />    
      </xs:sequence> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 

兒童

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"    
      xmlns:xs="http://www.w3.org/2001/XMLSchema"     
      targetNamespace="http://fxb.co/xsd/warmoth/neck.xsd" > 
    <xs:element id="Neck" name="Neck"> 
    <xs:complexType> 
     <xs:sequence> 
     <xs:element name="Headstock"> 
      <xs:complexType> 
      <xs:attribute name="active" type="xs:boolean" default="true" /> 
      </xs:complexType> 
     </xs:element> 
     </xs:sequence> 
    </xs:complexType> 
    </xs:element> 
</xs:schema> 
+1

你只是一個星期的掙扎我! – Pierre

回答

2

在父XSD,改變

<xs:element minOccurs="0" maxOccurs="unbounded" name="Neck" type="wn:Neck" />    

<xs:element minOccurs="0" maxOccurs="unbounded" ref="wn:Neck" />    

,因爲您希望從子XSD的名稱空間引用Neck元素,而不是輸入

+1

太棒了。謝謝。 – JDN717