XSD in Web Services Douglas Purdy Distributed Systems
XSD in Web Services Douglas Purdy Distributed Systems Group Microsoft
Web Services Model
Microsoft Web Services Principles • Support serializable CLR types – Support v 1 -> v 2 -> v 1 scenarios without loss – Support graph semantics – Support types to author application protocols – Work to ensure usability on the “other side” • Support all of XSD – If it is a valid XSD our tools should support it – The binding code may not be strongly-typed “All schemas are supported, some are more supported than others”
Supporting serializable CLR types • A “de facto” XSD profile exists for WS – Defined by Soap. Builders – Largely sequence and XSD simple types • We added some features to the profile – Completely schema valid & interoperable – Versioning, Graphs, Generics, … • Causes issues with the “other side” – Doesn’t support the constructs we use – Doesn’t generate “usable” code when they do
Supporting all of XSD • Full XSD CLR mapping is hard – We tried it and it really wasn’t usable • We have great XML programming models – This is a reasonable way to support all of XSD • We are investing in even better XML tools – No details here ; -) • Currently, we support “fallback generation” – Generate the most “usable” typed model – Generate a backup typed model (old technology) – Generate a Message (model for a SOAP envelope)
Things to Explore • • UPA, UPA xsi: id & xsi: ref must-understand? Domain specific profiles of XSD (WS-I, …)
- Slides: 6