我想为下面的例子编写java程序代码。我无法在肥皂信封之前找到添加Doctype的方法。
<?xml version="1.0"?>
<!DOCTYPE order SYSTEM "c:\order.dtd">
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/order">
<order>
<cust_id>1</cust_id>
<cust_name>Bob Smith</cust_name>
<creditcardnum>999999999999</creditcardnum>
<creditcardexpiry>0609</creditcardexpiry>
<item>
<prod_id>1</prod_id>
<quantity>2</quantity>
</item>
</order>
</soap:Body>
</soap:Envelope>
答案 0 :(得分:0)
简而言之,您不应该在SOAP消息中添加DOCTYPE,即使您以某种方式使其工作。
稍微长一点的答案是,根据SOAP的规范,SOAP消息绝不能包含DTD。最有可能出现这种情况的原因,但有一些明确的担忧允许DTD,因为它打开了诸如XXE(XML外部实体攻击)等恶意攻击的大门。
以下是一些其他资源:
http://www.w3schools.com/xml/xml_soap.asp https://www.owasp.org/index.php/XML_External_Entity_(XXE)_Processing