所以我一直在为一个大型XML文件制作一个包含其他模式文件的模式文件,并且在这个XML文件中有一个元素,它使用了很多次但是有不同的类型并且有自己的模式文件。互联网告诉我,你不能拥有不同类型的同名元素,所以我试着解决它,这就是我尝试过的。
喜欢这个。
<ele1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="C:\Users\Desktop\Configuration.xsd">
<ele2>
<Test Name="Timetable" important="no" xsi:type="TimetableType">
<Class>className.something</Class>
</Test>
<Test Name="Database" important="yes" xsi:type="DatabaseType">
<Class>className.something</Class>
<Database>jk</Database>
<PortNr>1<PortNr>
</Test>
</ele2>
</ele1>
这是模式文件,这是真正的问题所在
<xs:schema elementFormDefault="qualified"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:include schemaLocation="file:///C:\Users\Desktop\Timetable.xsd" />
<xs:include schemaLocation="file:///C:\Users\Desktop\Database.xsd" />
<xs:element name="ele1">
<xs:complexType>
<xs:sequence>
<xs:element name="ele2">
<xs:complexType>
<xs:sequence>
<xs:element name="Test" xsi:type="TimetableType" />
<xs:element name="Test" xsi:type="DatabaseType" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
使用xsi:type制作模式文件是否合法?对于验证程序,我正在使用Liquid XML Studio 2014,它正在验证配置文件。
答案 0 :(得分:1)
xsi:type属性从不在架构中使用,仅在实例文档中使用。
XSD规范中有一个约束,即具有相同名称的两个兄弟元素必须具有相同的类型。它被称为&#34;元素声明一致&#34;约束。不要试图解决它:你不能。