60 likes | 212 Views
XSD in Web Services. Douglas Purdy Distributed Systems Group Microsoft. Web Services Model. Microsoft Web Services Principles. Support serializable CLR types Support v1 -> v2 -> v1 scenarios without loss Support graph semantics Support types to author application protocols
E N D
XSD in Web Services Douglas Purdy Distributed Systems Group Microsoft
Microsoft Web Services Principles • Support serializable CLR types • Support v1 -> v2 -> v1 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 SoapBuilders • 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, UPA, UPA • xsi:id & xsi:ref • must-understand? • Domain specific profiles of XSD (WS-I, …)