OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] XML schema problem for two definitions of the sameelement.

[ Lists Home | Date Index | Thread Index ]

Ivan,

Hess Yvan wrote:
 > I have a XML situation that have many time the same element but with a
 > different defininiton as illustrated bellow and I would like to 
create the
 > XML schema that can validate this document. As you can see only the
 > <metadata> element differs from the first and second <document> 
element. The
 > first <document> element must occur only once and the second <document>
 > element can appears 0..unbounded. How can solve my problem?

You cannot do that in XML Schema, see: 
http://www.w3.org/TR/xmlschema-1/#cos-element-consistent
The solution will be to change your document to something like:

<edoc>
     <body>
         <metadata>
             <documenttype>BODY</documenttype>
             <from>yhe</from>
             <to>yvan</to>
         </metadata>
         <content>this is the content of the first document</content>
     </body>
     <part>
         <metadata>
             <documenttype>ATTACHMENT</documenttype>
             <filename>test.doc</filename>
             <filesize>100</filesize>
         </metadata>
         <content>this is the content of the second document</content>
     </part>
<edoc>


However in Relax NG you can have something similar to:

start =
     element edoc {
         element document {
             element metadata {
                 element documenttype { xsd:string },
                 element from { xsd:string },
                 element to { xsd:string }
             },
             element content { text }
         },
         element document {
             element metadata {
                 element documenttype { xsd:string },
                 element filename { xsd:string },
                 element filesize { xsd:integer }
             },
             element content { text }
         }*
     }

Hope that helps,
  George
-----------------------------------------------
George Cristian Bina
<oXygen/> XML Editor & XSLT Editor/Debugger
http://www.oxygenxml.com






 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS