<?xml version = "1.0" ?>
<schema xmlns = "http://www.w3.org/2001/XMLSchema"
targetNamespace = "http://www.java2java.com/employees"
xmlns:cust = "http://www.java2java.com/employees"
elementFormDefault = "qualified"
attributeFormDefault = "unqualified">
<element name = "employee" type = "cust:employeeType" />
<complexType name = "employeeType">
<sequence>
<element name = "FirstName" type = "string" />
<element name = "MiddleInitial" type = "string" />
<element ref = "cust:LastName" />
</sequence>
<attribute name = "clubCardMember" type = "boolean" />
<attribute ref = "cust:employeeID" />
</complexType>
<element name = "LastName" type = "string" />
<attribute name = "employeeID" type = "integer" />
</schema>
The following instance document will not work:
<?xml version = "1.0" ?>
<employee xmlns = "http://www.java2java.com/employees"
employeeID = "2442"
clubCardMember = "true">
<FirstName>first</FirstName>
<MiddleInitial>middle</MiddleInitial>
<LastName>last</LastName>
</employee>
The schema is expecting that we qualify the globally declared attribute name.
It wants to see the following:
<?xml version = "1.0" ?>
<employee xmlns = "http://www.java2java.com/employees"
xmlns:cust = "http://www.java2java.com/employees"
clubCardMember = "true"
cust:employeeID = "2442">
<FirstName>first</FirstName>
<MiddleInitial>middle</MiddleInitial>
<LastName>last</LastName>
</employee>
|