xml schema validation error "prefix is not bound"

lorenzoid picture lorenzoid · Feb 27, 2012 · Viewed 91.6k times · Source

I am entirely new to XML Schema and am trying to get the basics down. Here is my xml schema code (filename: example1.xsd):

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:sample="http://www.example" 
targetNamespace="http://www.example.com" 
elementFormDefault="qualified">

<xs:element name="school">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="element1" type="xs:string"/>
      <xs:element name="element2" type="xs:string"/>
      <xs:element name="element3" type="xs:string"/>
      <xs:element name="element4" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

</xs:schema> 

Here is the XML document.

<?xml version="1.0" encoding="UTF-8"?>

<sample:school xmlns="http://www.example.com"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="./example1.xsd">

      <element1>hello</element1>
      <element2>hello</element2>
      <element3>hello</element3>
      <element4>hello</element4>

</sample:school>

Upon trying to validate the xml file, I get an error from netbeans that says: The prefix "sample" for element "sample:school" is not bound. [9]

Answer

Daniel Haley picture Daniel Haley · Feb 27, 2012

In your XML, you either need to:

A. Remove the sample: prefix from sample:school

or

B. Change the xmlns="http://www.example.com" to xmlns:sample="http://www.example.com" and add the sample: prefix to the rest of the elements (<sample:element1>, <sample:element2>, etc.)