基本上,如果这是.NET,它会如下所示:
ISomething
{
string A { get; }
int B { get; }
}
var somethings = new List<ISomething>();
something.Add(new SomethingSomething());
something.Add(new AnotherSomething());
something.Add(new AnythingSomething());
基本上,我希望元素序列被命名为他们想要的任何东西,只要他们的复杂类型是我定义的复杂类型的扩展。
所以它可能看起来像:
<somethings>
<something-something a="foo" b="0" />
<another-something a="bar" b="1" />
<example:anything-something a="baz" b="2" />
</somethings>
我确信这是可能的,我猜另一种选择是构图,在构图中我有一个标准元素,它可以包含一个至少是“某物”的子元素。
事先谢谢,XSD不是我的强项。
编辑,好吧,到目前为止我发现的最接近的东西基本上是:
<somethings>
<something xsi:type="something-something" a="foo" b="0" />
<something xsi:type="another-something" a="bar" b="1" />
<something xsi:type="example:anything-something" a="baz" b="2" />
</somethings>
我想这是唯一的处理方法?如果是这样的话,这还不错,而且vs intellisense似乎已经足够理解这一点了。
谢谢。