Use
<?xml version="1.0" encoding="UTF-8"?>
<userDB xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="userDB.xsd">
<!-- NOTE: XML Format example only. Edit content before use. -->
<users>
<user>
<userid>This is a string</userid>
<name>This is a string</name>
<email>username@isp.com</email>
<phone>+19998887777</phone>
<hash>This is a string</hash>
<priviliges>This is a string</priviliges>
</user>
</users>
</userDB>
A simple xml file. Note the phone and email tags, these will be handled by custom types defined in jmpTypes.xsd
userDB.xsd<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by genSchema.php -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<!-- uncomment if types needed -->
<xs:include schemaLocation="jmpTypes.xsd"/>
<xs:element name="userDB">
<xs:complexType>
<xs:sequence>
<xs:element ref="users"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="users">
<xs:complexType>
<xs:sequence>
<xs:element ref="user" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="user">
<xs:complexType>
<xs:sequence>
<xs:element name="userid" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="email" type="emailType"/>
<xs:element name="phone" type="internationalPhoneType"/>
<xs:element name="hash" type="xs:string"/>
<xs:element name="priviliges" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
The schema. Note
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:simpleType name="internationalPhoneType">
<xs:restriction base="xs:string">
<!-- Optional + followed by 7 to 15 digits -->
<!-- Matches(e.g.) +18005551212 or +2408812345 -->
<xs:pattern value="\+?[0-9]{7,15}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="emailType">
<xs:restriction base="xs:string">
<xs:pattern value="[^@]+@[^\.]+\..+"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="SSNType">
<xs:restriction base="xs:string">
<xs:pattern value="\d{3}-\d{2}-\d{4}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="privilegesType">
<xs:restriction base="xs:string">
<xs:enumeration value="admin"/>
<xs:enumeration value="user"/>
<xs:enumeration value="guest"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
The common types library.