Meta Data Services Programming

EBNF Representation

The following defines the grammar of the Open Information Model (OIM) Extensible Markup Language (XML) encoding in Extended Backus-Naur Form (EBNF).

xmlHdr::='<?xml version="1.0">' 
oimDoc::=xmlHdr S Transfer
Transfer::='<oim:Transfer' [S 'version="1.0"'] NameSpaceDecl '>' S
   [TransferHeader]
   (Object | Transfer)*
   '</oim:Transfer>'
TransferHeader::='<oim:TransferHeader'
   ['Exporter="' ExporterName '"']
   ['ExporterVersion="' ExporterVersion '"']
   ['TransferDateTime="' CurrentDate '"']
   '/>'
oimNameSpace::='xmlns:oim="http://www.mdcinfo.com/oim/oim.dtd"'
oimPrefix::='oim:'
NameSpaceDecl::=oimNameSpace (S ModelSpaceDecl)* 
ModelSpaceDecl::= 'xmlns:' modelAbbr '="http://www.mdcinfo.com/oim/' nsPrefix '.dtd"'
nsPrefix::=modelAbbr (for the information model that the class is defined in)
objTransID::= '_' uniquifier (where uniquifier is a running number)
objID::= unique identifier for the element (repository dependent)
seqno::= sequence number within an association
label::= name of object within the association
object::='<' nsPrefix ':' elementName S 
'oim:id="' objTransID '"' 
   [S 'oim:objid="' objID '"'] 
   [S 'oim:seqno="' seqno  '"']
   [S 'oim:label="' label '"']
   [(S Attribute)*] 
   '>'
   [(S Association)*]
   '</' nsPrefix ':' elementName '>'
Attribute::=[[nsPrefix ':'] ClassName '.'] AttributeName S? '="' S?
   attributeValue S? '"'
Association   ::=   '<' [nsPrefix ':'] AssociationName '>' S?
   (Object S)*
   </' [nsPrefix ':'] AssociationName '>'

See Also

Using XML Encoding

XML Encoding Reference

XML in Meta Data Services