2011-09-15 2 views
3

Visual Studio에서 내 자신의 xml 스키마를 만들려고합니다. 그러나 Rectangle 형식과 같은 복잡한 형식이나 Shape 같은 상속 가능한 형식을 만들 수는 없습니다. schema.xsd는 다음과 같습니다.내 XML 스키마에서 상속 (예 : xs : extension)을 사용하려면 어떻게해야합니까?

  1. 네임 스페이스 ''는 (는)이 스키마에서 참조 할 수 없습니다. [6 개 행 XS : 확장베이스 = "형상">

  2. 불확정 복합 타입 "형상"복잡한 유형 확장 [다시 행 6]에 대한 기본으로서 사용된다

콘텐츠 :

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema 
    attributeFormDefault="unqualified" 
    elementFormDefault="qualified" 
    xmlns:xs ="http://www.w3.org/2001/XMLSchema" 
    targetNamespace="MySchema"> 

<xs:complexType name="Rectangle"> 
<xs:complexContent> 
    <xs:extension base="Shape"> 
    <xs:sequence> 
     <xs:element minOccurs="0" name ="X" type="xs:int"/> 
     <xs:element minOccurs="0" name ="Y" type="xs:int"/> 
     <xs:element minOccurs="0" name ="Width" type="xs:int"/> 
     <xs:element minOccurs="0" name ="Height" type="xs:int"/> 
    </xs:sequence> 
    </xs:extension> 
</xs:complexContent> 

</xs:complexType> 
<xs:complexType name="Shape"> 
    <xs:sequence> 
    <xs:element name="Complexity" type="xs:string"/> 
    </xs:sequence> 
</xs:complexType> 

xmlns:m="MySchema" 

수비력 구성 요소에 대한 참조에서 이것을 사용

답변

4

당신은 대상 네임 스페이스 접두사를 바인드해야

base="m:Shape" 
+0

감사 마이클 추가를, 즉이다 티켓. 나는 정말 당신의 대답에 감사드립니다. –

3

당신은 파일의 나머지 변경할 필요없이 기본 '' 네임 스페이스를 설정할 수 있습니다 Namespace '' is not available to be referenced in this schema.를 해결하려면 스키마 내 이네 :

xmlns="MySchema"

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema 
    attributeFormDefault="unqualified" 
    elementFormDefault="qualified" 
    xmlns:xs ="http://www.w3.org/2001/XMLSchema" 
    xmlns="MySchema" 
    targetNamespace="MySchema"> 
... 
+0

+1. 'xmlns'는 잊을 수있는 작은 것이고 어떻게 든 기억하기가 어렵습니다 (: –

관련 문제