2011-01-28 6 views
1

サンプルXSDとサンプルXMLを以下に示します。私は任意の名前だけではなく「列」を持つ要素を許可するようにXSDをしたいと思いますXMLスキーマ(XSD)に、*任意の名前の要素を持つVS Intellisenseを与えることはできますか?

<Columns> 
    <Column label="etc..."></Column> 
</Columns> 

:XSDは、このようなXMLのために書かれています。私が本当に欲しいのは、Visual Studioでintellisenseを使って、 "Column"の代わりに任意の要素名を入力できるようにして、いろいろな列の属性を求めるプロンプトが表示されるようにすることです。これは可能ですか?私はintellisenseを探しています。私は実際にスキーマを使ってXMLを検証する必要はありません。

サンプルXML:

<?xml version="1.0" encoding="utf-8" ?> 
<Columns name="FindPatient" label="Find Patient"> 
    <Name label="Patient Name" display="yes" order="1"/> 
    <MRN label="MRN #" display="yes" order="2"/> 
    <BirthDate label="Birth Date" format="shortdate" align="right" display="yes" order="3"/> 
    <SSN label="SSN" format="hiddenSsn" display="yes" order="4" notSortable="yes"/> 
    <DateOfService label="Date Of Service" format="shortdate" align="right" display="no" order="5"/> 
    <AdmitDate label="Admit Date" format="shortdate" align="right" display="no" order="6"/> 
    <DischargeDate label="Discharge Date" format="shortdate" align="right" display="no" order="7"/> 
    <Address label="Address" display="yes" order="8"/> 
    <Facility label="Facility" display="yes" order="9"/> 
</Columns> 

サンプルXSD:

<?xml version="1.0" encoding="utf-8"?> 
<xs:schema id="ColumnConfiguration" targetNamespace="http://example.com/columnconfiguration" xmlns="http://example.com/columnconfiguration" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"> 
    <xs:simpleType name="yesNo"> 
     <xs:restriction base="xs:string"> 
      <xs:enumeration value="yes"/> 
      <xs:enumeration value="no"/> 
     </xs:restriction> 
    </xs:simpleType> 
    <xs:complexType name="Column"> 
     <xs:attribute name="label" type="xs:string" use="required"/> 
     <xs:attribute name="display" type="yesNo" use="required"/> 
     <xs:attribute name="order" type="xs:integer" use="required"/> 
     <xs:attribute name="format" type="format" use="optional"/> 
     <xs:attribute name="align" type="xs:string" use="optional"/> 
     <xs:attribute name="tooltip" type="xs:string" use="optional"/> 
    </xs:complexType> 
    <xs:complexType name="Columns"> 
     <xs:sequence> 
      <xs:element name="Column" type="Column" minOccurs="1" maxOccurs="unbounded"/> 
     </xs:sequence> 
    </xs:complexType> 
    <xs:element name="Columns" type="Columns"/> 
</xs:schema> 

答えて

1

溶液で

<xs:complexType name="Columns"> 
    <xs:sequence> 
     <xs:element name="Column" type="Column" minOccurs="1" maxOccurs="unbounded"/> 
    </xs:sequence> 
</xs:complexType> 

を置き換える:それらを指定せずにすべての子要素を許可

<xs:complexType name="Columns"> 
    <xs:sequence> 
     <xs:any minOccurs="1"/> 
    </xs:sequence> 
</xs:complexType> 

ソリューション2:許可する最初の解決策は、私はすべての要素名に入れたが、私に属性のいずれかのインテリセンスを与えるものではありませんすることができますいくつかの明確に定義されチャイルズ

<xs:complexType name="Columns"> 
    <xs:choice minOccurs="1" maxOccurs="unbound"> 
     <xs:element name="Column" type="Column" minOccurs="1" maxOccurs="unbounded"/> 
     <!-- add other xs:element here --> 
    </xs:choice> 
</xs:complexType> 
+0

。 2番目の要素は、最初に要素「列」に名前を付けて後で変更すると機能します。私はこれに完璧な解決策はないと思います。ありがとう! –

関連する問題