can be used to generate a best-guess
schema from any XML document. It will make certain assumptions about
the structure of your document, based on the data found in the
example you provide. For example, it will always set
unbounded for each
element. It will also always use the
compositor for lists of elements, even if your example XML document
has elements in various orders. This can present the odd situation of
the sample document used to generate the XSD failing validation with
the XSD generated from it. Finally, the
attribute of each
xs:attribute element defaults to
For these reasons, you should never take the generated XSD for granted. Always edit it to make sure it will fit your real requirements.
Using the purchase order document from Chapter 2, you can generate an XSD with the following command line:
You can go ahead and use XSD to generate
the source code. I’ve already done so, and tweaked
the generated code to ensure that this XSD validates the PO
correctly. These edits are highlighted in Example 8-1. I intentionally introduced a couple of
mistakes in my edits. I’ve done this to point out
XmlSchema validates an XSD, and
I’ll explain that more in a moment.
<?xml version="1.0" encoding="utf-8"?> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> ...