Click here to Skip to main content
15,881,852 members
Articles / Web Development / HTML

XML Data Files, XML Serialization, and .NET

Rate me:
Please Sign up or sign in to vote.
4.82/5 (28 votes)
27 Aug 200317 min read 338K   6.4K   130  
Describes a means to build XML data files using XML Schema and xsd.exe to facilitate easy XML Serialization
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema id="Cardfile" targetNamespace="http://tempuri.org/Cardfile.xsd" elementFormDefault="qualified" xmlns="http://tempuri.org/Cardfile.xsd" xmlns:mstns="http://tempuri.org/Cardfile.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:complexType name="PropType">
		<xs:sequence>
			<xs:element name="Name" type="xs:string" />
			<xs:element name="Author" type="xs:string" />
			<xs:element name="Comments" type="xs:string" />
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CardType">
		<xs:sequence>
			<xs:element name="Header">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Name" type="xs:string" />
						<xs:element name="ID" type="xs:nonNegativeInteger" />
						<xs:element name="Type">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="Note" />
									<xs:enumeration value="Contact" />
									<xs:enumeration value="Image" />
								</xs:restriction>
							</xs:simpleType>
						</xs:element>
						<xs:element name="Created" type="xs:dateTime" />
						<xs:element name="Updated" type="xs:dateTime" />
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="Body">
				<xs:complexType>
					<xs:choice>
						<xs:element name="Image" type="xs:base64Binary" />
						<xs:element name="Note" type="xs:string" />
						<xs:element name="Contact">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="FName" type="xs:string" />
									<xs:element name="MName" type="xs:string" />
									<xs:element name="LName" type="xs:string" />
									<xs:element name="Addr1" type="xs:string" />
									<xs:element name="Addr2" type="xs:string" />
									<xs:element name="Addr3" type="xs:string" />
									<xs:element name="City" type="xs:string" />
									<xs:element name="State" type="xs:string" />
									<xs:element name="PCode" type="xs:string" />
									<xs:element name="Country" type="xs:string" />
									<xs:element name="Company" type="xs:string" />
									<xs:element name="HomePh" type="xs:string" />
									<xs:element name="MobilePh" type="xs:string" />
									<xs:element name="WorkPh" type="xs:string" />
									<xs:element name="FaxPh" type="xs:string" />
									<xs:element name="EMail" type="xs:string" />
									<xs:element name="Notes" type="xs:string" />
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:choice>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Cards">
		<xs:complexType>
			<xs:sequence>
				<xs:element type="PropType" name="Props" minOccurs="1" maxOccurs="1" />
				<xs:element name="NextID" type="xs:nonNegativeInteger" />
				<xs:element name="Version" type="xs:string" />
				<xs:element type="CardType" name="Card" minOccurs="0" maxOccurs="unbounded" />
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.


Written By
United States United States
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions