2010-12-12 4 views
1

다음 XML 조각을 고려하십시오.Intellisense는 xs : key/xs : keyref를 지원합니까?

<languages default="de-DE"> 
    <language id="es-ES" /> 
    <language id="de-DE" /> 
</languages> 

및이를 설명하는 xsd :

<xs:simpleType name="availableCultures" id="availableCultures"> 
    <xs:restriction base="xs:QName"> 
    <xs:enumeration value="en-US"/> 
    <xs:enumeration value="de-DE"/> 
    <xs:enumeration value="es-ES"/> 
    </xs:restriction> 
</xs:simpleType> 
... 
<xs:element name="languages"> 
    <xs:complexType> 
    <xs:sequence> 
     <xs:element name="language" minOccurs="0" maxOccurs="unbounded"> 
     <xs:complexType> 
      <xs:attribute name="id" form="unqualified" type="mstns:availableCultures" use="required" /> 
     </xs:complexType> 
     </xs:element> 
    </xs:sequence> 
    <xs:attribute name="default" form="unqualified" type="mstns:availableCultures" /> 
    </xs:complexType> 
    <xs:keyref name="defaultP" refer="mstns:languageKey"> 
    <xs:selector xpath="."/> 
    <xs:field xpath="@default"/> 
    </xs:keyref> 
    <xs:key name="languageKey"> 
    <xs:selector xpath="mstns:language"/> 
    <xs:field xpath="@id"/> 
    </xs:key> 
    <xs:unique name="languageUnique"> 
    <xs:selector xpath="mstns:language"/> 
    <xs:field xpath="@id"/> 
    </xs:unique> 
</xs:element> 

이제는 거의 작동합니다. 목록의 언어는 고유해야하며 '기본'속성은 목록의 언어 중 하나를 참조해야합니다. 또한 'id'및 'default'필드 모두에 대해 Intellisense를 지원합니다. 그러나 Intellisense가 XML 파일의 'default'필드에 대한 언어 목록 만 제공하도록하고 싶습니다. availableCultures 유형의 모든 언어가 아니라 (모두 올바른 언어입니다). 어떻게해야합니까?

왜 이것이 가능해야한다고 생각합니까? 위의 xsd 파일을 작성할 때 Intellisense는 'xs : attribute'요소의 'type'속성에 대한 드롭 다운 목록에 "mstns : availableCultures"를 표시했습니다.

내가 모르는 이유는 xsd만으로도이 작업을 수행 할 수 있는지 또는 일종의 VS 패키지/추가 기능을 작성해야한다는 것입니다.

답변

0

내 경험에 따르면 VS 2005에서는 이러한 현상이 발생하지 않는다는 것을 알 수 있습니다.

관련 문제