DTD to XML

R

Ritu

Hello Folks,

I am struggling to convert an existing DTD file to the XSD format. I
encountered some problems and was hoping someone could help me out
here.

I am using XMLspy to create the schema.

My original DTD statement looks like this

<!ELEMENT AC_RECORD_ID (#PCDATA)>
<!ATTLIST AC_RECORD_ID
e-dtype NMTOKEN #FIXED "int"


In XSD I represent this by adding an atrribute to the AC_RECORD_ID
element as in

<xs:complex type name="PHRASE">
<xs:sequence>
<xs:element name="AC_RECORD_ID">
<xs:complexType>
<xs:attribute name="e-dtype" type="xs:NMTOKEN" fixed="int"/>
</xs:complexType>
</xs:element>
.... other elements
</xs:sequence>
</xs:complexType>

When I try to validate my XML against this I get the following error

"unexpected element contents - AC_RECORD_ID is defined as EMPTY"

The XML block that gives this error is

<AC_RECORD_ID>124</AC_RECORD_ID>


My problem is that I have not defined AC_RECORD_ID to be empty
anywhere. Why does adding an attribute to it trigger this error?. Is
there something missed out in the definition? If I remove the
attribute the XML piece validates without problem.

I would really appreciate any pointers in this direction.

Cheers
Ritu
 
E

Ed Day

I think the problem is that you do not have any content defined for
the element. Therefore, the only thing that is allowed is a null
element with a single attribute. You can use simpleContent to add an
attribute to a simple base type as follows:

<xs:complex type name="PHRASE">
<xs:sequence>
<xs:element name="AC_RECORD_ID">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="e-dtype" type="xs:NMTOKEN"
fixed="int"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
... other elements
</xs:sequence>
</xs:complexType>

Regards,

Ed Day
Objective Systems, Inc.
 
R

Ritu

I think the problem is that you do not have any content defined for
the element. Therefore, the only thing that is allowed is a null
element with a single attribute. You can use simpleContent to add an
attribute to a simple base type as follows:

Thanks Ed, this does work!

Regards
Ritu
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,581
Members
45,056
Latest member
GlycogenSupporthealth

Latest Threads

Top