Measures Concepts
GitHub icon

DDML

DDML - Xml format

< >

DDML, aka Document Definition Markup Language, is a xml format created in 1999.

#554on PLDB 25Years Old

Document Definition Markup Language (DDML) is an XML schema language proposed in 1999 by various contributors from the xml-dev electronic mailing list. It was published only as a W3C Note, not a Recommendation, and never found favor with developers. DDML began as XSchema, a reformulation of XML DTDs as full XML documents, so that elements and attributes, rather than declarations, could be used to describe a schema. Read more on Wikipedia...


Example from the web:
<?xml version="1.0"?> <!DOCTYPE "DocumentDef"> <DocumentDef FileExtension="ddm" prefix=""> <ElementDecl Name="DocumentDef" Root="Recommended"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> <Choice Frequency="ZeroOrMore"> <Ref Element="ElementDecl"/> <Ref Element="Model"/> <Ref Element="AttDef"/> <Ref Element="AttGroup"/> <Ref Element="Notation"/> <Ref Element="UnparsedEntity"/> <Ref Element="Enumeration"/> <Ref Element="DocumentDef"/> </Choice> </Seq> </Model> <AttGroup> <AttDef Name="xmlns" Required="Yes" AttValue="http://www.purl.org/NET/ddml/v1"/> <AttDef Name="DDML" prefix="xmlns" Required="Yes" AttValue="http://www.purl.org/NET/ddml/v1"/> <AttDef Name="ns"/> <AttDef Name="ElementNS"/> <AttDef Name="prefix" Type="Nmtoken"/> <AttDef Name="Version" Required="Yes" AttValue="1.0"/> <AttDef Name="MimeType" AttValue="application/xml"/> <AttDef Name="FileExtension" AttValue="xml"/> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="ElementDecl"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> <Ref Element="Model"/> <Ref Element="AttGroup" Frequency="Optional"/> </Seq> </Model> <AttGroup> <AttDef Name="Name" Type="Nmtoken" Required="Yes"/> <AttDef Name="ns"/> <AttDef Name="prefix" Type="Nmtoken"/> <AttDef Name="id" Type="ID"/> <AttDef Name="Root" Type="Enumerated" AttValue="Possible"> <Enumeration> <EnumerationValue Value="Recommended"/> <EnumerationValue Value="Possible"/> <EnumerationValue Value="Unlikely"/> </Enumeration> </AttDef> </AttGroup> </ElementDecl> <ElementDecl Name="Model"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> <Choice> <Ref Element="Ref"/> <Ref Element="Choice"/> <Ref Element="Seq"/> <Ref Element="Empty"/> <Ref Element="Any"/> <Ref Element="PCData"/> <Ref Element="Mixed"/> </Choice> </Seq> </Model> <AttGroup> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="Empty"> <Model> <Empty/> </Model> <AttGroup> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="Any"> <Model> <Empty/> </Model> <AttGroup> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="PCData"> <Model> <Empty/> </Model> <AttGroup> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="Ref"> <Model> <Empty/> </Model> <AttGroup> <AttDef Name="Element" Type="Nmtoken" Required="Yes"/> <AttDef Name="ElementNS"/> <AttDef Name="id" Type="ID"/> <AttDef Name="Frequency" Type="Enumerated" AttValue="Required"> <Enumeration> <EnumerationValue Value="Required"/> <EnumerationValue Value="Optional"/> <EnumerationValue Value="ZeroOrMore"/> <EnumerationValue Value="OneOrMore"/> </Enumeration> </AttDef> </AttGroup> </ElementDecl> <ElementDecl Name="Mixed"> <Model> <Ref Element="Ref" Frequency="OneOrMore"/> </Model> <AttGroup> <AttDef Name="ElementNS"/> <AttDef Name="id" Type="ID"/> <AttDef Name="Frequency" Type="Enumerated" Required="Yes" AttValue="ZeroOrMore"> <Enumeration> <EnumerationValue Value="ZeroOrMore"/> </Enumeration> </AttDef> </AttGroup> </ElementDecl> <ElementDecl Name="Choice"> <Model> <Seq> <Choice> <Ref Element="Seq"/> <Ref Element="Ref"/> <Ref Element="Model"/> </Choice> <Choice Frequency="OneOrMore"> <Ref Element="Seq"/> <Ref Element="Ref"/> <Ref Element="Model"/> </Choice> </Seq> </Model> <AttGroup> <AttDef Name="ElementNS"/> <AttDef Name="id" Type="ID"/> <AttDef Name="Frequency" Type="Enumerated" AttValue="Required"> <Enumeration> <EnumerationValue Value="Required"/> <EnumerationValue Value="Optional"/> <EnumerationValue Value="ZeroOrMore"/> <EnumerationValue Value="OneOrMore"/> </Enumeration> </AttDef> </AttGroup> </ElementDecl> <ElementDecl Name="Seq"> <Model> <Seq> <Choice> <Ref Element="Choice"/> <Ref Element="Ref"/> <Ref Element="Model"/> </Choice> <Choice Frequency="OneOrMore"> <Ref Element="Choice"/> <Ref Element="Ref"/> <Ref Element="Model"/> </Choice> </Seq> </Model> <AttGroup> <AttDef Name="ElementNS"/> <AttDef Name="id" Type="ID"/> <AttDef Name="Frequency" Type="Enumerated" AttValue="Required"> <Enumeration> <EnumerationValue Value="Required"/> <EnumerationValue Value="Optional"/> <EnumerationValue Value="ZeroOrMore"/> <EnumerationValue Value="OneOrMore"/> </Enumeration> </AttDef> </AttGroup> </ElementDecl> <ElementDecl Name="AttGroup"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> <Choice Frequency="ZeroOrMore"> <Ref Element="AttDef"/> <Ref Element="AttGroup"/> </Choice> </Seq> </Model> <AttGroup> <AttDef Name="ns"/> <AttDef Name="prefix" Type="Nmtoken"/> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="AttDef"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> <Ref Element="Enumeration" Frequency="Optional"/> </Seq> </Model> <AttGroup> <AttDef Name="Name" Type="Nmtoken" Required="Yes"/> <AttDef Name="ns"/> <AttDef Name="prefix" Type="Nmtoken"/> <AttDef Name="Type" Type="Enumerated" AttValue="CData"> <Enumeration> <EnumerationValue Value="CData"/> <EnumerationValue Value="ID"/> <EnumerationValue Value="IDRef"/> <EnumerationValue Value="IDRefs"/> <EnumerationValue Value="Entity"/> <EnumerationValue Value="Entities"/> <EnumerationValue Value="Nmtoken"/> <EnumerationValue Value="Nmtokens"/> <EnumerationValue Value="Notation"/> <EnumerationValue Value="Enumerated"/> </Enumeration> </AttDef> <AttDef Name="Required" Type="Enumeration" AttValue="No"> <Enumeration> <EnumerationValue Value="Yes"/> <EnumerationValue Value="No"/> </Enumeration> </AttDef> <AttDef Name="AttValue"/> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="Enumeration"> <Model> <Seq> <Ref Element="Doc" Frequen cy="Optional"/> <Ref Element="More" Frequency="Optional"/> <Ref Element="EnumerationValue" Frequency="OneOrMore"/> </Seq> </Model> <AttGroup> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="EnumerationValue"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> </Seq> </Model> <AttGroup> <AttDef Name="Value" Required="Yes"/> </AttGroup> </ElementDecl> <ElementDecl Name="Notation"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> </Seq> </Model> <AttGroup> <AttDef Name="Name" Type="Nmtoken" Required="Yes"/> <AttDef Name="PubidLiteral"/> <AttDef Name="SystemLiteral"/> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="UnparsedEntity"> <Model> <Seq> <Ref Element="Doc" Frequency="Optional"/> <Ref Element="More" Frequency="Optional"/> </Seq> </Model> <AttGroup> <AttDef Name="Name" Type="Nmtoken" Required="Yes"/> <AttDef Name="SystemLiteral" Required="Yes"/> <AttDef Name="PubidLiteral"/> <AttDef Name="Notation" Type="Nmtoken" Required="Yes"/> <AttDef Name="id" Type="ID"/> </AttGroup> </ElementDecl> <ElementDecl Name="Doc" prefix="DDML"> <Model> <!-- The struct model from IBTWSH goes here. Defining IBTWSH in DDML is left as an exercise to the reader. ; --> </Model> <AttGroup> <AttDef Name="xmlns" Required="Yes" AttValue=""/> </AttGroup> </ElementDecl> <ElementDecl Name="More" prefix="DDML"> <Model> <Any/> </Model> <AttGroup> <AttDef Name="xmlns" AttValue=""/> </AttGroup> </ElementDecl> </DocumentDef>

View source

- Build the next great programming language Search Add Language Features Creators Resources About Blog Acknowledgements Queries Stats Sponsor Day 605 feedback@pldb.io Logout