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 '>'