Skip to content

Instantly share code, notes, and snippets.

@pjmagee
Created December 1, 2012 21:42
Show Gist options
  • Select an option

  • Save pjmagee/4185269 to your computer and use it in GitHub Desktop.

Select an option

Save pjmagee/4185269 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="name">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="title" use="required">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="Professor" />
<xs:enumeration value="Lecturer" />
<xs:enumeration value="Reader" />
<xs:enumeration value="Dr" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="first" type="xs:string" use="required" />
<xs:attribute name="last" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="teaching">
<xs:complexType>
<xs:sequence>
<xs:element ref="course" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="course">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="code" use="required">
<xs:simpleType>
<xs:restriction base="xs:token">
<!-- '^(?<CoursePrefix>[A-Z]{2})(?<CourseDigits>\d{4})(?<Semester>[A]|[B]?)\z' -->
<xs:pattern value="[A-Z]{2}\d{4}([A]|[B]?)" />
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="research" type="xs:string" />
<xs:element name="lecturer">
<xs:complexType>
<xs:sequence>
<xs:element ref="name" minOccurs="1" maxOccurs="1" />
<xs:element ref="teaching" minOccurs="1" maxOccurs="1" />
<xs:element ref="research" minOccurs="0" maxOccurs="1" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="lecturers">
<xs:complexType>
<xs:sequence>
<xs:element ref="lecturer" minOccurs="1" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment