本文整理汇总了C++中XMLNode::NewAttribute方法的典型用法代码示例。如果您正苦于以下问题:C++ XMLNode::NewAttribute方法的具体用法?C++ XMLNode::NewAttribute怎么用?C++ XMLNode::NewAttribute使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XMLNode
的用法示例。
在下文中一共展示了XMLNode::NewAttribute方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: tostring
UsernameToken::UsernameToken(SOAPEnvelope& soap, const std::string& username, const std::string& uid, bool mac, int iteration) {
header_=soap.Header();
uid_ = uid;
iteration_ = iteration;
//Get the username
username_=username;
if(username_.empty()) get_username(username_);
salt_ = get_salt(mac);
// Apply predefined namespace prefix
NS ns;
ns["wsse"]=WSSE_NAMESPACE;
ns["wsse11"]=WSSE11_NAMESPACE;
ns["wsu"]=WSU_NAMESPACE;
header_.Namespaces(ns);
//Check the arguments
if(username_.empty() || salt_.empty()) {
std::cerr<<"Username and Salt should not be empty"<<std::endl;
header_=XMLNode();
return;
}
// Insert the related elements
XMLNode wsse = get_node(header_,"wsse:Security");
XMLNode ut = get_node(wsse, "wsse:UsernameToken");
if(!uid_.empty()) {
ut.NewAttribute("wsse:Id") = uid_;
}
get_node(ut, "wsse:Username") = username_;
get_node(ut, "wsse11:Salt") = salt_;
get_node(ut, "wsse11:Iteration") = tostring(iteration);
}
示例2: listTargetSystemFactories
bool UNICOREClient::listTargetSystemFactories(std::list< std::pair<URL, ServiceType> >& tsf) {
logger.msg(INFO, "Creating and sending an index service query");
PayloadSOAP req(unicore_ns);
XMLNode query = req.NewChild("rp:QueryResourceProperties");
XMLNode exp = query.NewChild("rp:QueryExpression");
exp.NewAttribute("Dialect") = "http://www.w3.org/TR/1999/REC-xpath-19991116";
exp = "//*";
PayloadSOAP *resp = NULL;
client->process("http://docs.oasis-open.org/wsrf/rpw-2"
"/QueryResourceProperties/QueryResourcePropertiesRequest",
&req, &resp);
if (resp == NULL) {
logger.msg(VERBOSE, "There was no SOAP response");
return false;
}
XMLNodeList memberServices = resp->Body().Path("QueryResourcePropertiesResponse/Entry/MemberServiceEPR");
for (XMLNodeList::iterator it = memberServices.begin(); it != memberServices.end(); it++) {
if (((std::string)(*it)["Metadata"]["InterfaceName"]).find("BESFactoryPortType") != std::string::npos) { // it.Metadata.InterfaceName should contain 'BESFactoryPortType'...
tsf.push_back(std::pair<URL, ServiceType>(URL((std::string)(*it)["Address"]), COMPUTING));
}
}
return true;
}
示例3: if
UsernameToken::UsernameToken(SOAPEnvelope& soap, const std::string& username, const std::string& password,const std::string& uid, PasswordType pwdtype) {
header_=soap.Header();
uid_ = uid;
iteration_ = 0;
//Get the username
username_=username;
if(username_.empty()) get_username(username_);
//Get the password
password_=password;
if(password_.empty()) get_password(password_,false);
// Apply predefined namespace prefix
NS ns;
ns["wsse"]=WSSE_NAMESPACE;
ns["wsse11"]=WSSE11_NAMESPACE;
ns["wsu"]=WSU_NAMESPACE;
header_.Namespaces(ns);
//Check the arguments
if(username_.empty() || password_.empty()) {
std::cerr<<"Username and Password should not be empty"<<std::endl;
header_=XMLNode();
return;
}
// Insert the related elements
XMLNode wsse = get_node(header_,"wsse:Security");
XMLNode ut = get_node(wsse, "wsse:UsernameToken");
if(!uid_.empty()) {
ut.NewAttribute("wsu:Id") = uid_;
}
get_node(ut, "wsse:Username") = username_;
XMLNode passwd_node = get_node(ut, "wsse:Password");
if(pwdtype == PasswordText) {
passwd_node.NewAttribute("Type") = passwdtype_ = PASSWORD_TEXT;
passwd_node = password_;
}
else if(pwdtype == PasswordDigest) {
passwd_node.NewAttribute("Type") = passwdtype_ = PASSWORD_DIGEST;
nonce_ = get_nonce();
get_node(ut, "wsse:Nonce") = nonce_;
created_ = Time().str(UTCTime);
get_node(ut, "wsu:Created") = created_;
//std::cout<<"nonce: "<<nonce_<<"createdtime: "<<created_<<"password: "<<password_<<std::endl;
std::string password_digest = digest_password(nonce_, created_, password_);
passwd_node = password_digest;
password_ = password_digest; //the plain test of password will not be useful any more.
}
else {
std::cerr<<"Unsupported password type requested"<<std::endl;
header_=XMLNode();
return;
}
}
示例4: clean
bool UNICOREClient::clean(const std::string& jobid) {
std::string result, faultstring;
logger.msg(INFO, "Creating and sending request to terminate a job");
PayloadSOAP req(unicore_ns);
XMLNode op = req.NewChild("a-rex:ChangeActivityStatus");
XMLNode jobref = op.NewChild(XMLNode(jobid));
XMLNode jobstate = op.NewChild("a-rex:NewStatus");
jobstate.NewAttribute("bes-factory:state") = "Finished";
jobstate.NewChild("a-rex:state") = "Deleted";
// Send clean request
PayloadSOAP *resp = NULL;
if (client) {
MCC_Status status = client->process("", &req, &resp);
if (resp == NULL) {
logger.msg(VERBOSE, "There was no SOAP response");
return false;
}
}
else if (client_entry) {
Message reqmsg;
Message repmsg;
MessageAttributes attributes_req;
MessageAttributes attributes_rep;
MessageContext context;
reqmsg.Payload(&req);
reqmsg.Attributes(&attributes_req);
reqmsg.Context(&context);
repmsg.Attributes(&attributes_rep);
repmsg.Context(&context);
MCC_Status status = client_entry->process(reqmsg, repmsg);
if (!status) {
logger.msg(ERROR, "A job cleaning request failed");
return false;
}
logger.msg(INFO, "A job cleaning request succeed");
if (repmsg.Payload() == NULL) {
logger.msg(VERBOSE, "There was no response to a job cleaning request");
return false;
}
try {
resp = dynamic_cast<PayloadSOAP*>(repmsg.Payload());
} catch (std::exception&) {}
if (resp == NULL) {
logger.msg(ERROR, "The response of a job cleaning request was not "
"a SOAP message");
delete repmsg.Payload();
return false;
}
}
else {
logger.msg(ERROR, "There is no connection chain configured");
return false;
}
if (!((*resp)["ChangeActivityStatusResponse"])) {
delete resp;
XMLNode fs;
(*resp)["Fault"]["faultstring"].New(fs);
faultstring = (std::string)fs;
if (faultstring != "") {
logger.msg(ERROR, faultstring);
return false;
}
if (result != "true") {
logger.msg(ERROR, "Job termination failed");
return false;
}
}
delete resp;
return true;
}
示例5: Export
bool SOAPSecAttr::Export(SecAttrFormat format,XMLNode &val) const {
if(format == UNDEFINED) {
} else if(format == ARCAuth) {
NS ns;
ns["ra"]="http://www.nordugrid.org/schemas/request-arc";
val.Namespaces(ns); val.Name("ra:Request");
XMLNode item = val.NewChild("ra:RequestItem");
if(!object_.empty()) {
XMLNode object = item.NewChild("ra:Resource");
object=object_;
object.NewAttribute("Type")="string";
object.NewAttribute("AttributeId")="http://www.nordugrid.org/schemas/policy-arc/types/soap/endpoint";
};
if(!action_.empty()) {
XMLNode action = item.NewChild("ra:Action");
action=action_;
action.NewAttribute("Type")="string";
action.NewAttribute("AttributeId")="http://www.nordugrid.org/schemas/policy-arc/types/soap/operation";
};
if(!context_.empty()) {
XMLNode context = item.NewChild("ra:Context").NewChild("ra:ContextAttribute");
context=context_;
context.NewAttribute("Type")="string";
context.NewAttribute("AttributeId")="http://www.nordugrid.org/schemas/policy-arc/types/soap/namespace";
};
return true;
} else if(format == XACML) {
NS ns;
ns["ra"]="urn:oasis:names:tc:xacml:2.0:context:schema:os";
val.Namespaces(ns); val.Name("ra:Request");
if(!object_.empty()) {
XMLNode object = val.NewChild("ra:Resource");
XMLNode attr = object.NewChild("ra:Attribute");
attr.NewChild("ra:AttributeValue") = object_;
attr.NewAttribute("DataType")="xs:string";
attr.NewAttribute("AttributeId")="http://www.nordugrid.org/schemas/policy-arc/types/soap/endpoint";
};
if(!action_.empty()) {
XMLNode action = val.NewChild("ra:Action");
XMLNode attr = action.NewChild("ra:Attribute");
attr.NewChild("ra:AttributeValue") = action_;
attr.NewAttribute("DataType")="xs:string";
attr.NewAttribute("AttributeId")="http://www.nordugrid.org/schemas/policy-arc/types/soap/operation";
};
if(!context_.empty()) {
XMLNode context = val.NewChild("ra:Environment");
XMLNode attr = context.NewChild("ra:Attribute");
attr.NewChild("ra:AttributeValue") = context_;
attr.NewAttribute("DataType")="xs:string";
attr.NewAttribute("AttributeId")="http://www.nordugrid.org/schemas/policy-arc/types/soap/namespace";
};
return true;
} else {
};
return false;
}