У меня есть иерархия сложных типов.xsd имя элемента по типу
Например: Абстрактный тип адреса с элементами StreetNumber, StreetName и PostalCode Бетон Тип HomeAddress с базой Адрес Бетон Тип BusinessAddress с базой Адрес
Типы HomeAddress и BusinessAddress не имеют каких-либо дополнительных элементов и только тип другой.
Возможно ли иметь более одного типа адресов в моем XML?
<HomeAddress>
...
</HomeAddress>
<HomeAddress>
...
</HomeAddress>
В XSD:
<xs:element name="address" type="Address" maxOccurs="unbounded"/>
Я хочу, чтобы имя элемента, чтобы быть динамическим на основе фактического типа.
Подобно Java, может подтип быть назначен супер-типа? Как узнать, что является фактическим типом? –
Да. Попробуйте запустить XSD с помощью инструмента генерации кода сериализации, такого как jaxb (для Java) или xsd.exe (для C#), чтобы увидеть, как концепции наследования OO отображают 1: 1 в типы XML. Что касается «фактического типа», адрес homeAddress - это адрес, так что это и то, и другое. Добавьте еще один сложный подтип (например, «businessAddress») в пример выше, если это поможет. –
Возможный дубликат http://stackoverflow.com/questions/5020313/polymorphism-in-xsd-schema-and-jaxb-classes –