我是XSD / XMl的新手,正在尝试为我使用的项目中使用的xml文件创建模板。该架构将由visual studio中的几位同事使用,我的主要目标是进行错误检查和自动完成功能。
然而,我希望在XSD上拥有我的xml模板的一个功能,但我不知道这是否可行。我认为不是,但我只想确定。
基本上,xml看起来像这样:
<root>
<parameters>
<parameter name="@param1"/>
<parameter name="@param2"/>
<parameter name="@param3"/>
</parameters>
<test>
<parameter_value parameter_name="@param1" value="whatever"/>
<parameter_value parameter_name="@param2" value="whatever"/>
</text>
</root>
这个想法首先是用户&#34;定义&#34;参数,然后他在特定的测试中分配它们的值。我的问题是天气与否我可以在&#34; parameter_name&#34;上定义限制。属性,以便只能输入此特定xml中的声明参数。这可能吗?
祝你好运 Carlos Jourdan
答案 0 :(得分:0)
是的,您可以在XSD 1.0中执行此操作。通常是这样的:
<xs:element name="root">
<...>
<xs:key name="paramName">
<xs:selection xpath="parameters/parameter"/>
<xs:field xpath="@name"/>
</xs:key>
<xs:keyref refer="paramName">
<xs:selection xpath="text/parameter_value"/>
<xs:field xpath="@parameter_name"/>
</xs:keyref>
</xs:element>
这是来自内存,因此请准备好在您喜欢的XSD教科书中查找正确的语法。