XSD规范适用于XML文件可以共享公共元素。如果我有几个XML文件共享一个公共元素,是否有一种方法可以提取公共元素而不必为每个XML文件类型重复代码?
例如:有许多通过XSD定义的XML文件,具有共同的描述元素,但其他地方具有不同的内容结构。描述具有诸如作者、日期等子元素。当我为每个XML文件创建类型提供程序时,类型是不同的,因此如果我只想从每个文件中提取描述部分,则必须将代码复制粘贴到每个类型中。
XML文件1:
<root>
<description >
<author> Me </author>
</description>
<element > Data </element>
<otherelement> Data </otherelement>
</root>
XML文件2:
<root2>
<description >
<author> Me </author>
</description>
<elem > Data </elem>
<diffelem> Data </diffelem >
</root2>
需要的代码类似于:
type File1 = XmlProvider<""".\file1.xml""">
type File2 = XmlProvider<""".\file2.xml""">
let descript1 =
File1.GetSample().description.author
let descript2 =
File2.GetSample().description.author //duplicated code
这种情况下很简单,但是如果描述更长、xml文件类型更多,则会变得更为复杂。
有没有办法解决这个问题?可以为XML文件的子集创建类型提供程序,仅提取那些部分以使代码更具可重用性吗?