0
我有一個有點簡單的XML文件:我能有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列表中的顯示類型值。
這可能嗎?我一直試圖添加一個外鍵唯一的關係,但是我的模式intellisence停止工作,所以我認爲我錯了。
編輯
這裏是我現有的(工作,但沒有我想要的還).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>
@邁克爾你好,我添加了以下行: 正好在SearchSettings元素行下面,現在是第4行。然後在SearchField中向下添加DisplayType,如下所示: 但是頂部的xs:key沒有通過驗證。選擇和字段似乎不是有效的屬性。就這樣說,SearchField中的選擇屬性失敗。我會仔細研究這些,看看我缺少什麼。 –
Grandizer
需要確切地看到你做了什麼以及它究竟是如何失敗的。 –