やや単純な XML ファイルがあります。
<?xml version="1.0" encoding="utf-8" standalone="no" ?>
<SearchSettings>
<ChangeHistory>
<Changed By="Joe Schmoe" On="2013-07-17">Initial creation of this file.</Changed>
</ChangeHistory>
<Logicals>
<Logical Name="Exact Match" ShortName="EM" Operator="== {0}" />
<Logical Name="Contains" ShortName="Co" Operator="%{0}%" />
<Logical Name="Starts With" ShortName="SW" Operator="{0}%" />
<Logical Name="Ends With" ShortName="EW" Operator="%{0}" />
<Logical Name="Between" ShortName="Be" Operator="gt= {0} AND lt= {0}" />
<Logical Name="Less Than" ShortName="LT" Operator="lt {0}" />
<Logical Name="Greater Than" ShortName="GT" Operator="gt {0}" />
</Logicals>
<LogicalGroupings>
<Group DisplayType="Text" Allowed="EM|Co|SW|EW" />
<Group DisplayType="Decimal" Allowed="EM|Be|LT|GT" />
<Group DisplayType="Integer" Allowed="EM|Be|LT|GT" />
<Group DisplayType="Date" Allowed="EM|Be|LT|GT" />
<Group DisplayType="List" Allowed="EM" />
</LogicalGroupings>
<SearchFields>
<SearchField DisplayName="Complaint Type" DisplayType="List" ColumnName="Complaint.ComplaintTypeID" GetMethod="GetComplaintTypes" ToolTipTitle="" ToolTipContent="" ToolTipKey="" Transform="" />
<SearchField DisplayName="Complaint Number" DisplayType="Text" ColumnName="Complaint.Number" />
<SearchField DisplayName="Tax Year" DisplayType="Integer" ColumnName="Complaint.TaxYear" />
<SearchField DisplayName="Category" DisplayType="List" ColumnName="Complaint.Category" GetMethod="GetExistingCategories" />
<SearchField DisplayName="Building Value" DisplayType="Integer" ColumnName="Complaint.BuildingValue" />
<SearchField DisplayName="Land Value" DisplayType="Integer" ColumnName="Complaint.LandValue" />
<SearchField DisplayName="Owner Opinion" DisplayType="Integer" ColumnName="Complaint.OwnerOpinion" />
<SearchField DisplayName="Notes" DisplayType="Text" ColumnName="Complaint.Notes" AllowedLogicals="Co" />
</SearchFields>
</SearchSettings>
そして、SearchFields.SearchField.DisplayType が LogicalGroupings リストからの DisplayType 値のみを許可するようにします。
これは可能ですか?外部キーのみの関係を追加しようとし続けますが、スキーマ インテリジェンスが機能しなくなるため、間違っていると判断します。
編集
これが私の既存の(機能していますが、まだ欲しいものがない).xsdファイルです。スペースを節約するために、気にしないセクションを削除しました。
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="SearchSettings" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="SearchSettings" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="LogicalGroupings">
<xs:complexType>
<xs:sequence>
<xs:element name="Group" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="DisplayType" type="xs:string" />
<xs:attribute name="Allowed" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SearchFields">
<xs:complexType>
<xs:sequence>
<xs:element name="SearchField" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="DisplayName" type="xs:string" />
<xs:attribute name="DisplayType" type="xs:string" />
<xs:attribute name="ColumnName" type="xs:string" />
<xs:attribute name="GetMethod" type="xs:string" />
<xs:attribute name="ToolTipTitle" type="xs:string" />
<xs:attribute name="ToolTipContent" type="xs:string" />
<xs:attribute name="ToolTipKey" type="xs:string" />
<xs:attribute name="Transform" type="xs:string" />
<xs:attribute name="AllowedLogicals" type="xs:string" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>