В принципе, если бы это был .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 не моя сильная сторона.
Edit, хорошо, самая близкая вещь, которую я нашел до сих пор, в основном:
<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>
Полагаю, это единственный способ, которым это обрабатывается? если это так, то это не так уж и плохо, и против intellisense, кажется, понимает это достаточно хорошо.
Спасибо.