DTD - invalid structure

I am totally new to XML and constructing its DTD.  I ran the DTD against the XML document and encounter this error:  The content of element type "member" must match "null".  

I have attached both files.  What am I doing wrong?
contactinfo.xml
senators.txt
cookiejarAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

Gertone (Geert Bormans)Information ArchitectCommented:
you have two declarations for member, one being #PCDATA, drop that one
also your DTD only allows one member

Change your DTD like this

<!ELEMENT contact_information (member)+>
<!ELEMENT member (member_full,last_name,first_name,party,state)>
<!ELEMENT member_full (#PCDATA)>
<!ELEMENT last_name (#PCDATA)>
<!ELEMENT first_name (#PCDATA)>
<!ELEMENT party (#PCDATA)>
<!ELEMENT state (#PCDATA)>

Open in new window

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
cookiejarAuthor Commented:
Thank you for help.  When you say my DTD allows only one member.  Does that mean, the element member or one possible content for member?

For example, I have:

<member>

</member>
<member>

<member>

Isn't that more than one member, please forgive my ignorance, I am student and have not grasped this concept.
0
Gertone (Geert Bormans)Information ArchitectCommented:
OK, my explanation might have been a bit vague

Your DTD had
<!ELEMENT contact_information (member)>
which means that the element contact_information requires exactly one member child

I corrected like this
<!ELEMENT contact_information (member)+>
the "+" means "one or more"
with that correction contact_information can have more member child elements
0
cookiejarAuthor Commented:
Another question would it be correct to use <!ELEMENT contact_information (member)*>?
0
Gertone (Geert Bormans)Information ArchitectCommented:
yes, "*" means "zero or more"
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
XML

From novice to tech pro — start learning today.