царапание моей головы на WCF... У меня есть сообщения XML где дети <DataFields>
могло быть что-либо, например.
<Test1Root>
<CaseNo></CaseNo>
<Activity></Activity>
<DataFields>
<AccountRef></AccountRef>
<PropRef></PropRef>
<User></User>
</DataFields>
</Test1Root>
Я обработал это в BizTalk с помощью <xs:any>
для <DataFields>
...
<xs:element name="DataFields">
<xs:complexType>
<xs:sequence>
<xs:any minOccurs="0" maxOccurs="unbounded" processContents="skip" />
</xs:sequence>
</xs:complexType>
</xs:element>
Но я изо всех сил пытаюсь видеть, как обработать это в WCF [DataContract]
...
Я пытался использовать и svcutil.exe и xsd.exe для создания классов, и они оба дают основные элементы (CaseNo, Действие, и т.д.), но ни один, кажется, не обрабатывает xs:any DataFields...
Действительно ли возможно получить лучшую обработку дочерних элементов?
Ну, xs: any
может быть чем угодно, поэтому лучшее, что могут сделать инструменты .NET, - это предоставить вам массив объектов ....
Поскольку он может быть что угодно, вы действительно мало что можете с этим поделать, верно? Это может быть что угодно ... поэтому вам нужно использовать тип, который может быть любым.
Если вам действительно нужен этот xs: any
в вашей XML-схеме, и его нельзя заменить, например, набор более конкретных xs: element
(возможно, унаследованных друг от друга), я не понимаю, как вы могли бы получить лучшую поддержку ...