Solved

XSD: Attribute is not declared

Posted on 2006-06-09
2
3,959 Views
Last Modified: 2013-11-19
Hello,

I'm having a problem with some XML not being validated accordingly against my schema.  I know that the XML is correct.  However, I cannot seem to generate the appropriate XSD to validate the XML.

My XML is formated as follows:
<?xml version="1.0"?>

<entries xmlns="http://tempuri.org/Test.xsd">
      <entry>
            <person ssn="123-45-6789">firstName lastName</person>
                </entry>
</entries>

The Test.xsd file is formatted as follows:
<?xml version="1.0"?>
<xs:schema id="Test" targetNamespace="http://tempuri.org/Test.xsd" xmlns:mstns="http://tempuri.org/Test.xsd" xmlns="http://tempuri.org/Test.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" attributeFormDefault="qualified" elementFormDefault="qualified">

                <xs:element name="entries" msdata:IsDataSet="false" msdata:EnforceConstraints="false">
                                <xs:complexType>
            <xs:choice maxOccurs="unbounded">
            <xs:element name="entry">
            <xs:complexType>
            <xs:sequence>
                                     <xs:element name="person" type="Person" />
                                     <xs:element name="occupation" type="xs:stirng" />
                                </xs:sequence>
                                </xs:element>
                                </xs:choice>
            </xs:complexType>
      </xs:element>

      <xs:complexType name="Person">
            <xs:simpleContent>
                  <xs:extension base="xs:string">
                        <xs:attribute name="ssn" type="xs:string" use="required"/>
                  </xs:extension>
            </xs:simpleContent>
      </xs:complexType>
</xs:schema>
      
I am using the .NET Framework.  When I attempt to validate this XML file using the Test.xsd file, I receive two messages for each <person> I have in my XML file.  The messages are:

"The 'ssn' attribute is not declared." and
"The required attribute 'http://tempuri.org/Test.xsd:ssn' is missing"

It's almost like my xml file is not accessing the correct xsl file.  However, if I remove an <occupation> element from the xml file, it throws an error stating that it's expecting the <occupation> so I know that is accessing the correct XSD file.  I'm really confused.  Thank you so much for your help
0
Comment
Question by:campbel8
2 Comments
 
LVL 12

Accepted Solution

by:
jkmyoung earned 250 total points
ID: 16870988
attributeFormDefault="qualified"
Change to
attributeFormDefault="unqualified"
Otherwise the attribute is expected to be in the namespace http://tempuri.org/Test.xsd"
0
 
LVL 60

Expert Comment

by:Geert Bormans
ID: 16871012
Hi campbel8,
> attributeFormDefault="qualified"

makes the parser expect a qualification for your attribute

This would be valid according your schema
(attributes require a hard prefix, they don't accept the default)

<entries xmlns="http://tempuri.org/Test.xsd" xmlns:tmp="http://tempuri.org/Test.xsd">
     <entry>
          <person tmp:ssn="123-45-6789">firstName lastName</person>
                </entry>
</entries>

this is a bit unworkable
set the value to unqualified and your XML will be valid as well


Cheers!
0

Featured Post

Secure Your Active Directory - April 20, 2017

Active Directory plays a critical role in your company’s IT infrastructure and keeping it secure in today’s hacker-infested world is a must.
Microsoft published 300+ pages of guidance, but who has the time, money, and resources to implement? Register now to find an easier way.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The Confluence of Individual Knowledge and the Collective Intelligence At this writing (summer 2013) the term API (http://dictionary.reference.com/browse/API?s=t) has made its way into the popular lexicon of the English language.  A few years ago, …
Shoutout to Emily Plummer (http://www.experts-exchange.com/members/eplummer26.html) for giving me this article! She did most of it, I just finished it up and posted it for her :)    Introduction In a previous article (http://www.experts-exchang…
The viewer will receive an overview of the basics of CSS showing inline styles. In the head tags set up your style tags: (CODE) Reference the nav tag and set your properties.: (CODE) Set the reference for the UL element and styles for it to ensu…
The viewer will the learn the benefit of plain text editors and code an HTML5 based template for use in further tutorials.

749 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question