本文整理汇总了C++中XMLNamespaces::clone方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLNamespaces::clone方法的具体用法?C++ XMLNamespaces::clone怎么用?C++ XMLNamespaces::clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLNamespaces
的用法示例。
在下文中一共展示了XMLNamespaces::clone方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: if
/*
*
* Subclasses should override this method to write their xmlns attriubutes
* (if any) to the XMLOutputStream. Be sure to call your parents implementation
* of this method as well.
*
*/
void
SedDocument::writeXMLNS (XMLOutputStream& stream) const
{
// need to check that we have indeed a namespace set!
XMLNamespaces * thisNs = this->getNamespaces();
// the sbml namespace is missing - add it
if (thisNs == NULL)
{
XMLNamespaces xmlns;
xmlns.add(SEDML_XMLNS_L1);
mSedNamespaces->setNamespaces(&xmlns);
thisNs = getNamespaces();
}
else if (thisNs->getLength() == 0)
{
thisNs->add(SEDML_XMLNS_L1);
}
else
{
// check that there is an sbml namespace
std::string sedmlURI = SedNamespaces::getSedNamespaceURI(mLevel, mVersion);
std::string sedmlPrefix = thisNs->getPrefix(sedmlURI);
if (thisNs->hasNS(sedmlURI, sedmlPrefix) == false)
{
// the sbml ns is not present
std::string other = thisNs->getURI(sedmlPrefix);
if (other.empty() == false)
{
// there is another ns with the prefix that the sbml ns expects to have
//remove the this ns, add the sbml ns and
//add the new ns with a new prefix
thisNs->remove(sedmlPrefix);
thisNs->add(sedmlURI, sedmlPrefix);
thisNs->add(other, "addedPrefix");
}
else
{
thisNs->add(sedmlURI, sedmlPrefix);
}
}
}
XMLNamespaces * xmlns = thisNs->clone();
if (xmlns != NULL)
{
stream << *(xmlns);
delete xmlns;
}
}