EBNF Representation

Meta Data Services Programming

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