0
我想創建一個xsd文件運行我們的web.config文件。我試圖抓住人爲錯誤並防止標籤嵌套。壞xml示例:xml架構驗證腳本阻止嵌套
<applicationSettings>
<app.MySettings>
<setting name="FirstName" serializeAs="String">
<value>John</value>
<setting name="LastName" serializeAs="String">
<value>Smith</value>
</setting>
</setting>
</app.MySettings>
</applicationSettings>
您會注意到設置「LastName」嵌套在「FirstName」中。正確的格式是:
<applicationSettings>
<app.MySettings>
<setting name="FirstName" serializeAs="String">
<value>John</value>
</setting>
<setting name="LastName" serializeAs="String">
<value>Smith</value>
</setting>
</app.MySettings>
</applicationSettings>
所以,我試圖創建一個模式來運行它反對。我有這個到目前爲止:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="applicationSettings">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:sequence>
<xs:element name="app.mysettings">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:sequence>
<xs:element name="setting">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="1">
<xs:sequence>
<xs:element type="xs:short" name="value"/>
</xs:sequence>
<xs:attribute type="xs:string" name="name"/>
<xs:attribute type="xs:string" name="serializeAs"/>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
有什麼不對,因爲我收回它的有效,它不應該是?如果這是做錯誤的方式(使用模式),請讓我知道更好的方法。
謝謝!
d^h
這將防止標籤的嵌套?你不需要關閉?使用 –
2014-09-29 14:31:30
是的。如果您傳遞具有嵌套標記的實例,它將通過XML驗證錯誤。用更新了答案。 – Girish 2014-09-30 06:36:39
這很好。謝謝! – 2014-09-30 14:11:57