Catriona Buhayar's dMLIS 545 website

Return to main assignment page

Assignment Number 2

In creating the schema for my XML document (I'm still standing by my assertion that we should collect all the data in our XML document and use the stylesheet to determine which chunks of data are displayed for the repair person and the car salesdude), I discovered some minor errors in my original XML document. Also, I have decided that element names should be unique.

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">


	<xs:element name="year" type="xs:gYear"/>
	<xs:element name="website" type="xs:anyURI"/>
	<xs:element name="vehicle" type="xs:string"/>
	<xs:element name="telephone" type="xs:string"/>
	<xs:element name="suspension" type="xs:string"/>
	<xs:element name="street" type="xs:string"/>
	<xs:element name="sale" type="xs:boolean"/>
	<xs:element name="lease" type="xs:boolean"/>
	<xs:element name="price" type="xs:string"/>
	<xs:element name="notes" type="xs:string"/>
	<xs:element name="name" type="xs:string"/>
	<xs:element name="model" type="xs:string"/>
	<xs:element name="miles" type="xs:integer"/>
	<xs:element name="highway" type="xs:string" />
	<xs:element name="number" type="xs:integer"/>
	<xs:element name="location" type="xs:string"/>
	<xs:element name="horsepower" type="xs:string"/>
	<xs:element name="graphic" type="xs:string"/>
	<xs:element name="manufacturer" type="xs:string"/>
	<xs:element name="email" type="xs:string"/>
	<xs:element name="differential" type="xs:string"/>
	<xs:element name="coolant" type="xs:string"/>
	<xs:element name="color" type="xs:string"/>

	<xs:attribute name="date" type="xs:date"/>
	
	<xs:element name="wheels">
		<xs:complexType>
			<xs:sequence>
			<xs:element name="wheel_type">
				<xs:complexType>
					<xs:sequence>
						<xs:element ref="number"/>
						<xs:element name="maintenance">
							<xs:complexType>
								<xs:attribute ref="date" use="required"/>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			</xs:sequence>			
		</xs:complexType>
	</xs:element>

	<xs:element name="brakes">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="brake_type">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="brake_maintenance">
								<xs:complexType>
										<xs:attribute ref="date" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>	

	<xs:element name="mileage">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="street"/>
				<xs:element ref="highway"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="engine">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="model"/>
				<xs:element ref="horsepower"/>
				<xs:element ref="differential"/>
				<xs:element ref="suspension"/>
				<xs:element ref="coolant"/>
				<xs:element name="wheel_maintenance">
					<xs:complexType>
						<xs:attribute ref="date" use="required"/>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

	<xs:element name="contact">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="name"/>
				<xs:element ref="location"/>
				<xs:element ref="email"/>
				<xs:element ref="telephone"/>
				<xs:element ref="website"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

</xs:schema>