//----------------------------------------------------- Méthodes publiques void SimpleBuilder::buildDTD(DTD& dtd) const { unsigned int elementNumber = 0; AttributesList attlist; // --- ROOT : SEQUENCE Sequence::OrderedContent embeddedContent; embeddedContent.push_back(new ElementReference(dtd, ns(1), name(1))); embeddedContent.push_back(new ElementReference(dtd, ns(4), name(4))); embeddedContent.push_back(new ElementReference(dtd, ns(2), name(2))); embeddedContent.push_back(new ElementReference(dtd, ns(3), name(3))); dtd.addElement(ns(elementNumber), name(elementNumber), *new Sequence(embeddedContent)); attlist.clear(); attlist.insert(new Attribute(attname(2))); attlist.insert(new Attribute(attname(3))); dtd.addAttributesList(ns(elementNumber), name(elementNumber), attlist); elementNumber = 1; // --- CHILD 1 : REPEATABLECONTENT(MIXEDCONTENT) MixedContent::ChoosableSet choosables; choosables.insert(new ElementReference(dtd, ns(5), name(5))); choosables.insert(new ElementReference(dtd, ns(6), name(6))); dtd.addElement( ns(elementNumber), name(elementNumber), *new RepeatableContent( *new MixedContent(*new TextContent(), choosables))); attlist.clear(); attlist.insert(new Attribute(attname(0))); attlist.insert(new Attribute(attname(1))); dtd.addAttributesList(ns(elementNumber), name(elementNumber), attlist); elementNumber = 2; // --- CHILD 2 : OPTIONAL CONTENT dtd.addElement(ns(elementNumber), name(elementNumber), *new OptionalContent(*new ElementReference(dtd, ns(7), name(7)))); attlist.clear(); attlist.insert(new Attribute(attname(4))); attlist.insert(new Attribute(attname(5))); dtd.addAttributesList(ns(elementNumber), name(elementNumber), attlist); // --- LEAFS for (int i = 3; i <= 7; ++i) { dtd.addElement(ns(i), name(i), *new EmptyContent()); } }