this.serviceRoot = serviceRoot;
}
public void writeServiceDocument(final Writer writer) throws EntityProviderException {
EdmServiceMetadata serviceMetadata = edm.getServiceMetadata();
try {
XMLStreamWriter xmlStreamWriter = XMLOutputFactory.newInstance().createXMLStreamWriter(writer);
xmlStreamWriter.writeStartDocument(DEFAULT_CHARSET, XML_VERSION);
xmlStreamWriter.setPrefix(Edm.PREFIX_XML, Edm.NAMESPACE_XML_1998);
xmlStreamWriter.setPrefix(Edm.PREFIX_ATOM, Edm.NAMESPACE_ATOM_2005);
xmlStreamWriter.setDefaultNamespace(Edm.NAMESPACE_APP_2007);
xmlStreamWriter.writeStartElement(FormatXml.APP_SERVICE);
xmlStreamWriter.writeAttribute(Edm.PREFIX_XML, Edm.NAMESPACE_XML_1998, FormatXml.XML_BASE, serviceRoot);
xmlStreamWriter.writeDefaultNamespace(Edm.NAMESPACE_APP_2007);
xmlStreamWriter.writeNamespace(Edm.PREFIX_ATOM, Edm.NAMESPACE_ATOM_2005);
xmlStreamWriter.writeStartElement(FormatXml.APP_WORKSPACE);
xmlStreamWriter.writeStartElement(Edm.NAMESPACE_ATOM_2005, FormatXml.ATOM_TITLE);
xmlStreamWriter.writeCharacters(FormatXml.ATOM_TITLE_DEFAULT);
xmlStreamWriter.writeEndElement();
List<EdmEntitySetInfo> entitySetInfos = serviceMetadata.getEntitySetInfos();
for (EdmEntitySetInfo info : entitySetInfos) {
xmlStreamWriter.writeStartElement(FormatXml.APP_COLLECTION);
xmlStreamWriter.writeAttribute(FormatXml.ATOM_HREF, info.getEntitySetUri().toASCIIString());
xmlStreamWriter.writeStartElement(Edm.NAMESPACE_ATOM_2005, FormatXml.ATOM_TITLE);
xmlStreamWriter.writeCharacters(info.getEntitySetName());