คุณกําลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X info
นโยบาย SOAPMessageValidation จะทำสิ่งต่อไปนี้
- ตรวจสอบข้อความ XML กับสคีมา XSD
- ตรวจสอบข้อความ SOAP เทียบกับคําจํากัดความ WSDL
- ตรวจสอบความถูกต้องของรูปแบบข้อความ JSON และ XML
แม้ว่าชื่อของนโยบายนี้จะแสดงใน UI เป็น "การตรวจสอบข้อความ SOAP" แต่นโยบายนี้จะตรวจสอบมากกว่าข้อความ SOAP ส่วนนี้จะเรียกนโยบายนี้ว่า "นโยบายการตรวจสอบข้อความ"
องค์ประกอบ <MessageValidation>
กำหนดนโยบายการตรวจสอบข้อความ
ค่าเริ่มต้น | ดูแท็บนโยบายเริ่มต้นด้านล่าง |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | วัตถุที่ซับซ้อน |
องค์ประกอบหลัก | ไม่มี |
องค์ประกอบย่อย |
<DisplayName> <Element> <ResourceURL> <SOAPMessage> <Source> |
ไวยากรณ์
องค์ประกอบ <MessageValidation>
ใช้ไวยากรณ์ต่อไปนี้
<MessageValidation continueOnError="[false|true]" enabled="[true|false]" name="policy_name" > <!-- All MessageValidation child elements are optional --> <DisplayName>policy_display_name</DisplayName> <Element namespace="element_namespace">element_to_validate</Element> <SOAPMessage version="[ 1.1 | 1.2 | 1.1/1.2 ]"/> <Source>message_to_validate</Source> <ResourceURL>validation_WSDL_or_XSD</ResourceURL> </MessageValidation>
นโยบายเริ่มต้น
ตัวอย่างต่อไปนี้แสดงการตั้งค่าเริ่มต้นเมื่อคุณเพิ่มนโยบายการตรวจสอบข้อความลงในโฟลว์ใน UI ของ Edge
<MessageValidation continueOnError="false" enabled="true" name="SOAP-Message-Validation-1"> <DisplayName>SOAP Message Validation-1</DisplayName> <Properties/> <Element namespace="http://sample.com">sampleObject</Element> <SOAPMessage/> <Source>request</Source> <ResourceURL>wsdl://SOAP-Message-Validation-1.wsdl</ResourceURL> </MessageValidation>
องค์ประกอบนี้มีแอตทริบิวต์ต่อไปนี้ซึ่งมักใช้กับนโยบายทั้งหมด
แอตทริบิวต์ | ค่าเริ่มต้น | จําเป็นไหม | คำอธิบาย |
---|---|---|---|
name |
ไม่มีข้อมูล | จำเป็น |
ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ ใช้องค์ประกอบ |
continueOnError |
เท็จ | ไม่บังคับ | ตั้งค่าเป็น "false" เพื่อแสดงข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งเป็นลักษณะการทํางานที่คาดหวังตามนโยบายส่วนใหญ่ ตั้งค่าเป็น "จริง" เพื่อดําเนินการโฟลว์ข้อมูลต่อไป แม้ว่านโยบายจะล้มเหลวก็ตาม |
enabled |
จริง | ไม่บังคับ | ตั้งค่าเป็น "true" เพื่อบังคับใช้นโยบาย ตั้งค่าเป็น "false" เพื่อ "ปิด" นโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังคงแนบไปกับโฟลว์ |
async |
เท็จ | เลิกใช้ | แอตทริบิวต์นี้เลิกใช้งานแล้ว |
ตัวอย่าง
ตัวอย่างต่อไปนี้แสดงวิธีใช้นโยบายการตรวจสอบข้อความ
1: การตรวจสอบ XSD
คุณสามารถใช้นโยบายการตรวจสอบข้อความเพื่อตรวจสอบเพย์โหลดของคําขอข้อความ XML กับสคีมา XSD
- สร้างไฟล์ทรัพยากร XSD ใหม่ เช่น "note-schema.xsd"
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
- เพิ่มนโยบายการตรวจสอบข้อความ SOAP ไปยังขั้นตอนก่อนการเรียกใช้ของปลายทางพร็อกซี โดยทำดังนี้
- ระบุตำแหน่งของไฟล์ทรัพยากร XSD ด้วยองค์ประกอบ
<ResourceURL>
เช่น... <ResourceURL>xsd://note-schema.xsd</ResourceURL> ...
- นําองค์ประกอบ
<SOAPMessage>
และ<Element>
ออกจากคําจํากัดความของนโยบาย
คําจํากัดความของนโยบายควรมีลักษณะดังต่อไปนี้
<MessageValidation continueOnError="false" enabled="true" name="validateXMLRequest"> <DisplayName>My XML Validator</DisplayName> <Properties/> <Source>request</Source> <ResourceURL>xsd://note-schema.xsd</ResourceURL> </MessageValidation>
- ระบุตำแหน่งของไฟล์ทรัพยากร XSD ด้วยองค์ประกอบ
- ส่งคําขอ
POST
ไปยังพร็อกซี API โดยให้ XML เป็นเพย์โหลดข้อความ ดังตัวอย่างต่อไปนี้curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock -d '<note> <to>Fred Rogers</to> <from>Nick Danger</from> <heading>Greetings from my neighborhood</heading> <body>Just writing to say hello.</body> </note>'
โปรดทราบว่าส่วนหัว
Content-type
มีการตั้งค่าเป็น "application/xml"นอกจากนี้ คุณยังสร้างไฟล์ข้อมูลสำหรับเพย์โหลดและอ้างอิงด้วยคําสั่งที่คล้ายกับตัวอย่างต่อไปนี้ได้ด้วย
curl -v -X POST -H 'Content-type: application/xml' http://my-test.apigee.net/v1/xsd-mock --data '@../examples/note-payload.xml'
คุณควรได้รับการตอบกลับ HTTP 200
คุณอาจได้รับรายละเอียดเพิ่มเติมเกี่ยวกับคำขอ ทั้งนี้ขึ้นอยู่กับปลายทางเป้าหมาย ตัวอย่างเช่น หากคุณใช้ http://httpbin.org/post
เป็นปลายทางเป้าหมายและระบุเอาต์พุต -v
(รายละเอียด) คำตอบควรคล้ายกับตัวอย่างต่อไปนี้
< HTTP/1.1 200 OK < Date: Wed, 16 May 2018 21:24:54 GMT < Content-Type: application/xml < Content-Length: 431 < Connection: keep-alive < Server: gunicorn/19.8.1 < Access-Control-Allow-Origin: * < Access-Control-Allow-Credentials: true < Via: 1.1 vegur { "args":{}, "data":"<note><to>fred</to><from>nick</from><heading>hello</heading> <body>Just writing to say hello.</body></note>", "files":{}, "form":{}, "headers": { "Accept":"*/*", "Connection":"close", "Content-Length":"106", "Content-Type":"application/xml", "Host":"httpbin.org", "User-Agent":"curl/7.58.0" }, "json":null, "origin":"10.1.1.1, 104.154.179.1", "url":"http://httpbin.org/post" }
หากต้องการยืนยันว่าการตรวจสอบ XSD ทำงานอยู่ ให้ลองแทรกแท็กอื่นลงในเนื้อหาของคำขอ เช่น
curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock -d '<note> <to>Fred Rogers</to> <from>Nick Danger</from> <heading>Greetings from my neighborhood</heading> <body>Just writing to say hello.</body> <badTag>Not good</badTag> </note>'
คุณควรได้รับข้อผิดพลาดในการตรวจสอบ
2: การตรวจสอบ SOAP
คุณสามารถใช้นโยบายการตรวจสอบข้อความเพื่อตรวจสอบเพย์โหลดของคำขอข้อความ SOAP กับ WSDL
- สร้างไฟล์ทรัพยากร WSDL ใหม่ เช่น "example-wsdl.wsdl"
- เพิ่มนโยบายการตรวจสอบข้อความ SOAP ไปยังขั้นตอนก่อนการเรียกใช้ของปลายทางพร็อกซี โดยทำดังนี้
- ตั้งค่าแอตทริบิวต์
version
ขององค์ประกอบ<SOAPMessage>
เป็นเวอร์ชันของโปรโตคอล SOAP ที่ต้องการตรวจสอบ เช่น "1.1"... <SOAPMessage version="1.1"/> ...
- ตั้งค่าองค์ประกอบ
<Element>
เป็นองค์ประกอบที่ต้องการตรวจสอบ... <Element namespace="https://example.com/gateway">getID</Element> ...
<Element>
ระบุองค์ประกอบย่อยแรกภายใต้องค์ประกอบ<Body>
ในโฟลเดอร์คำขอ SOAPตั้งค่าแอตทริบิวต์
namespace
เป็นเนมสเปซสำหรับรายการย่อยนั้น - ระบุตำแหน่งของไฟล์ทรัพยากร WSDL ด้วยองค์ประกอบ
<ResourceURL>
เช่น... <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL> ...
คําจํากัดความของนโยบายควรมีลักษณะดังต่อไปนี้
<MessageValidation continueOnError="false" enabled="true" name="validateSOAPRequest"> <DisplayName>My SOAP Validator</DisplayName> <Properties/> <Source>request</Source> <SOAPMessage version="1.1"/> <Element namespace="https://example.com/gateway">getID</Element> <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL> </MessageValidation>
- ตั้งค่าแอตทริบิวต์
- ส่งคําขอ
POST
ไปยังพร็อกซี API ด้วยโฟลเดอร์ SOAP เป็นเพย์โหลดข้อความ ดังตัวอย่างต่อไปนี้curl -v -X POST -H 'Content-Type: application/xml' http://my-test.apigee.net/v1/xsd-mock -d '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:prox="https://example.com/gateway" xmlns:typ="https://example.com/gateway/types"> <soapenv:Header/> <soapenv:Body> <prox:getID> <typ:MyType> <typ:ID>42</typ:ID> </typ:MyType> </prox:getID> </soapenv:Body> </soapenv:Envelope>'
โปรดทราบว่าส่วนหัว
Content-type
มีการตั้งค่าเป็น "application/xml"นอกจากนี้ คุณยังสร้างไฟล์ข้อมูลสำหรับเพย์โหลดและอ้างอิงด้วยคําสั่งที่คล้ายกับตัวอย่างต่อไปนี้ได้ด้วย
curl -v -X POST -H 'Content-type: application/xml' http://my-test.apigee.net/v1/xsd-mock --data '@../examples/soap-payload.xml'
คุณควรได้รับการตอบกลับ HTTP 200
คุณอาจได้รับรายละเอียดเพิ่มเติมเกี่ยวกับคำขอ ทั้งนี้ขึ้นอยู่กับปลายทางเป้าหมาย ตัวอย่างเช่น หากคุณใช้ http://httpbin.org/post
เป็นปลายทางเป้าหมาย การตอบกลับควรคล้ายกับตัวอย่างต่อไปนี้
< HTTP/1.1 200 OK < Date: Wed, 16 May 2018 21:24:54 GMT < Content-Type: application/xml < Content-Length: 431 < Connection: keep-alive < Server: gunicorn/19.8.1 < Access-Control-Allow-Origin: * < Access-Control-Allow-Credentials: true < Via: 1.1 vegur { "args":{}, "data":"<note><to>fred</to><from>nick</from><heading>hello</heading> <body>Just writing to say hello.</body></note>", "files":{}, "form":{}, "headers": { "Accept":"*/*", "Connection":"close", "Content-Length":"106", "Content-Type":"application/xml", "Host":"httpbin.org", "User-Agent":"curl/7.58.0" }, "json":null, "origin":"10.1.1.1, 104.154.179.1", "url":"http://httpbin.org/post" }
3: XML/JSON ที่มีรูปแบบถูกต้อง
คุณสามารถใช้นโยบายการตรวจสอบข้อความเพื่อยืนยันว่าเพย์โหลดข้อความ JSON หรือ XML อยู่ในรูปแบบที่ถูกต้อง (ไม่เหมือนกับการตรวจสอบ) นโยบายนี้ช่วยให้มั่นใจได้ว่าโครงสร้างและเนื้อหาเป็นไปตามมาตรฐานที่ยอมรับ ซึ่งรวมถึง
- มีองค์ประกอบรูทรายการเดียว
- เนื้อหาไม่มีอักขระที่ไม่ถูกต้อง
- ออบเจ็กต์และแท็กซ้อนกันอย่างถูกต้อง
- แท็กเริ่มต้นและแท็กสิ้นสุดตรงกัน
วิธีตรวจสอบเพย์โหลด XML หรือ JSON อยู่ในรูปแบบที่ถูกต้อง
- เพิ่มนโยบายการตรวจสอบข้อความ SOAP ไปยังขั้นตอนก่อนการเรียกใช้ของปลายทางพร็อกซี
- นำองค์ประกอบ
<ResourceURL>
,<SOAPMessage>
และ<Element>
ออกจากคําจํากัดความของนโยบายคําจํากัดความของนโยบายควรมีลักษณะดังต่อไปนี้
<MessageValidation async="false" continueOnError="false" enabled="true" name="validateXMLRequest"> <DisplayName>My JSON Checker</DisplayName> <Properties/> <Source>request</Source> </MessageValidation>
- ส่งคําขอ
POST
ไปยังพร็อกซี API ดังที่แสดงในตัวอย่างต่อไปนี้curl -v -X POST -H 'Content-Type: application/json' http://my-test.apigee.net/v1/xsd-mock -d '{ "note": { "to": "Fred Rogers", "from": "Nick Danger", "header": "Greetings from my neighborhood", "body": "Just writing to say hello." } }'
โปรดทราบว่าส่วนหัว
Content-type
ตั้งค่าเป็น "application/json"หากต้องการตรวจสอบไฟล์ XML ว่าอยู่ในรูปแบบที่ถูกต้อง ให้ใช้ XML เป็นเพย์โหลดของข้อความและตั้งค่า
Content-type
เป็น "application/xml"
คุณควรได้รับการตอบกลับ HTTP 200
เมื่อส่งเพย์โหลดข้อความที่ไม่มี XML หรือ JSON ที่เป็นรูปแบบที่ถูกต้อง คุณจะได้รับข้อผิดพลาด steps.messagevalidation.Failed
การอ้างอิงองค์ประกอบย่อย
ส่วนนี้จะอธิบายองค์ประกอบย่อยของ <MessageValidation>
<DisplayName>
ใช้ร่วมกับแอตทริบิวต์ name
เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการโดยใช้ชื่ออื่นที่ฟังดูเป็นธรรมชาติมากขึ้น
องค์ประกอบ <DisplayName>
ใช้ได้กับทุกนโยบาย
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ไม่บังคับ หากคุณละเว้น <DisplayName> ระบบจะใช้ค่าของแอตทริบิวต์ name ของนโยบาย |
ประเภท | สตริง |
องค์ประกอบหลัก | <PolicyElement> |
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <DisplayName>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
ตัวอย่าง
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
องค์ประกอบ <DisplayName>
ไม่มีแอตทริบิวต์หรือองค์ประกอบย่อย
<Element>
ระบุองค์ประกอบในข้อความที่จะตรวจสอบ นี่คือองค์ประกอบย่อยแรกภายใต้องค์ประกอบ <Body>
ในโฟลเดอร์คำขอ SOAP
ค่าเริ่มต้น | sampleObject |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบหลัก |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <Element>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <Element namespace="element_namespace">element_to_validate</Element> ...
ตัวอย่างที่ 1
ตัวอย่างต่อไปนี้กำหนดองค์ประกอบเดียวที่จะตรวจสอบ
... <Element namespace="https://example.com/gateway">getID</Element> ...
ตัวอย่างที่ 2
คุณสามารถระบุองค์ประกอบมากกว่า 1 รายการเพื่อตรวจสอบได้โดยเพิ่มองค์ประกอบ <Element>
หลายรายการ ดังนี้
... <Element namespace="https://example.com/gateway">getID</Element> <Element namespace="https://example.com/gateway">getDetails</Element> ...
องค์ประกอบ <Element>
มีแอตทริบิวต์ต่อไปนี้
แอตทริบิวต์ | ค่าเริ่มต้น | จำเป็นหรือไม่ | คำอธิบาย |
---|---|---|---|
namespace |
"http://sample.com" | ไม่บังคับ | กำหนดเนมสเปซขององค์ประกอบที่จะตรวจสอบ |
<ResourceURL>
ระบุสคีมา XSD หรือคําจํากัดความ WSDL ที่จะใช้ในการตรวจสอบความถูกต้องของข้อความต้นทาง
ค่าเริ่มต้น | wsdl://display_name.wsdl |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบหลัก |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <ResourceURL>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <ResourceURL>[wsdl|xsd]://validation_WSDL_or_XSD</ResourceURL> ...
ตัวอย่าง
สำหรับไฟล์ XML ให้ทำดังนี้
... <ResourceURL>xsd://note-schema.xsd</ResourceURL> ...
สำหรับ WSDL
... <ResourceURL>wsdl://example-wsdl.wsdl</ResourceURL> ...
ค่าของ <ResourceURL>
ต้องชี้ไปยังไฟล์ทรัพยากรในพร็อกซี API ไม่สามารถอ้างอิงทรัพยากรภายนอกผ่าน HTTP หรือ HTTPS
หากคุณไม่ได้ระบุค่าสำหรับ <ResourceURL>
ระบบจะตรวจสอบข้อความว่าอยู่ในรูปแบบ JSON หรือ XML ที่ถูกต้อง หากส่วนหัว Content-type
คือ "application/json" หรือ "application/xml" ตามลำดับ
องค์ประกอบ <ResourceURL>
ไม่มีองค์ประกอบย่อยหรือแอตทริบิวต์
การใช้ XSD เพื่อตรวจสอบ
หากเพย์โหลด XML ที่คุณตรวจสอบด้วยนโยบายการตรวจสอบข้อความอ้างอิงสคีมาอื่น คุณต้องใส่ xsd
ไว้หน้าไฟล์ XSD ที่รวมไว้ในแอตทริบิวต์ schemaLocation
สคีมาตัวอย่างต่อไปนี้ประกอบด้วย XSD หลายรายการ
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified"> <xs:include schemaLocation="xsd://note-schema.xsd"/> <xs:include schemaLocation="xsd://letter-schema.xsd"/> <xs:include schemaLocation="xsd://user-schema.xsd"/> </xs:schema>
การใช้ WSDL เพื่อตรวจสอบ
WSDL ต้องกำหนดสคีมาอย่างน้อย 1 รายการ หากไม่ได้อ้างอิงสคีมาอย่างน้อย 1 รายการ นโยบายการตรวจสอบข้อความจะไม่ทำงาน
ความลึกในการนําเข้าสูงสุดของสคีมาคือ 10 หากการนําเข้าที่ฝังอยู่มีจํานวนเกินจำนวนดังกล่าว นโยบายการตรวจสอบข้อความจะดำเนินการไม่สำเร็จ
<SOAPMessage>
กำหนดเวอร์ชัน SOAP ที่นโยบายการตรวจสอบข้อความจะตรวจสอบ
ค่าเริ่มต้น | ไม่มี |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | ไม่มี |
องค์ประกอบหลัก |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <SOAPMessage>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <SOAPMessage version="[ 1.1 | 1.2 | 1.1/1.2 ]"/> ...
ตัวอย่าง
... <SOAPMessage version="1.1"/> ...
องค์ประกอบ <SOAPMessage>
มีแอตทริบิวต์ต่อไปนี้
แอตทริบิวต์ | ค่าเริ่มต้น | จำเป็นหรือไม่ | คำอธิบาย |
---|---|---|---|
version |
ไม่มี | ไม่บังคับ | เวอร์ชัน SOAP ที่นโยบายนี้ใช้ตรวจสอบความถูกต้องของข้อความ SOAP
ค่าที่ใช้ได้มีดังนี้
|
ดูข้อมูลเพิ่มเติมได้ที่จาก SOAP/1.1 เป็น SOAP เวอร์ชัน 1.2 ใน 9 จุด
<Source>
ระบุข้อความต้นทางที่จะตรวจสอบ ค่าขององค์ประกอบนี้คือชื่อข้อความที่ต้องการตรวจสอบ
หากคุณไม่ได้ตั้งค่า <Source>
นโยบายนี้จะมีค่าเริ่มต้นเป็น "message" ซึ่งหมายถึงข้อความคําขอที่สมบูรณ์ (ในขั้นตอนการขอ) หรือข้อความตอบกลับ (ในขั้นตอนการตอบกลับ) รวมถึงเพย์โหลด นอกจากนี้ คุณยังตั้งค่าเป็น "คำขอ" หรือ "คำตอบ" อย่างชัดเจนเพื่ออ้างอิงคำขอหรือคำตอบได้ด้วย
ค่าเริ่มต้น | ส่งคำขอ |
ต้องระบุหรือไม่ | ไม่บังคับ |
ประเภท | สตริง |
องค์ประกอบหลัก |
<MessageValidation>
|
องค์ประกอบย่อย | ไม่มี |
องค์ประกอบ <Source>
ใช้ไวยากรณ์ต่อไปนี้
ไวยากรณ์
... <Source>message_to_validate</Source> ...
ตัวอย่าง
... <Source>request</Source> ...
นอกจาก "message", "request" และ "response" แล้ว คุณยังตั้งค่า <Source>
เป็นชื่อข้อความใดก็ได้ในโฟลว์ อย่างไรก็ตาม หากทําเช่นนี้ คุณต้องสร้างข้อความที่กําหนดเองโดยใช้ชื่อนั้นในขั้นตอนก่อนนโยบายนี้จะมีผล มิฉะนั้น คุณจะได้รับข้อผิดพลาด
หากระบบไม่สามารถแก้ไขค่าของ <Source>
ในขั้นตอนการส่งข้อความหรือแก้ไขค่าเป็นประเภทที่ไม่ใช่ข้อความ ผลลัพธ์อย่างใดอย่างหนึ่งต่อไปนี้จะเกิดขึ้น
- หากเป็นค่า Null: Edge จะแสดงข้อผิดพลาด
steps.messagevalidation.SourceMessageNotAvailable
- หากไม่ใช่ประเภทข้อความ: Edge จะแสดงข้อผิดพลาด
steps.messagevalidation.NonMessageVariable
องค์ประกอบ <Source>
ไม่มีแอตทริบิวต์หรือองค์ประกอบย่อย
รหัสข้อผิดพลาด
ข้อผิดพลาดที่แสดงจากนโยบาย Edge อยู่ในรูปแบบที่สอดคล้องกันตามที่อธิบายไว้ในข้อมูลอ้างอิงรหัสข้อผิดพลาด
ส่วนนี้จะอธิบายโค้ดข้อผิดพลาดและข้อความแสดงข้อผิดพลาดที่แสดงผลและตัวแปรข้อผิดพลาดที่ Edge กําหนดเมื่อนโยบายนี้ทําให้เกิดข้อผิดพลาด ข้อมูลนี้เป็นสิ่งสำคัญที่ต้องทราบหากคุณกำลังกำหนดกฎข้อผิดพลาดเพื่อจัดการกับข้อผิดพลาด ดูข้อมูลเพิ่มเติมได้ที่สิ่งที่คุณต้องทราบเกี่ยวกับข้อผิดพลาดของนโยบายและการจัดการข้อผิดพลาด
ข้อผิดพลาดเกี่ยวกับรันไทม์
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน
รหัสข้อผิดพลาด | สถานะ HTTP | สาเหตุ | แก้ไข |
---|---|---|---|
steps.messagevalidation.SourceMessageNotAvailable |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากตัวแปรที่ระบุในองค์ประกอบ
|
build |
steps.messagevalidation.NonMessageVariable |
500 |
ข้อผิดพลาดนี้เกิดขึ้นหากมีการตั้งค่าองค์ประกอบ ตัวแปรประเภทข้อความจะเป็นตัวแทนของคำขอและการตอบกลับ HTTP ทั้งหมด ตัวแปรโฟลว์ Edge ในตัว |
build |
steps.messagevalidation.Failed |
500 | ข้อผิดพลาดนี้เกิดขึ้นหากนโยบาย SOAPMessageValidation ตรวจสอบเพย์โหลดของข้อความอินพุตกับสคีมา XSD หรือคำจำกัดความ WSDL ไม่สำเร็จ และจะเกิดขึ้นหากมี JSON หรือ XML ที่มีรูปแบบไม่ถูกต้องในข้อความเพย์โหลด | build |
ข้อผิดพลาดในการทำให้ใช้งานได้
ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อคุณใช้พร็อกซีที่มีนโยบายนี้
ชื่อข้อผิดพลาด | สาเหตุ | แก้ไข |
---|---|---|
InvalidResourceType |
องค์ประกอบ <ResourceURL> ในนโยบาย SOAPMessageValidation มีการตั้งค่าเป็นประเภททรัพยากรที่นโยบายไม่รองรับ
|
build |
ResourceCompileFailed |
สคริปต์ทรัพยากรที่อ้างอิงในองค์ประกอบ <ResourceURL> ของนโยบาย SOAPMessageValidation มีข้อผิดพลาดที่ทำให้คอมไพล์ไม่ได้
|
build |
RootElementNameUnspecified |
องค์ประกอบ <Element> ในนโยบาย SOAPMessageValidation ไม่มีชื่อขององค์ประกอบราก |
build |
InvalidRootElementName |
องค์ประกอบ <Element> ในนโยบาย SOAPMessageValidation มีชื่อองค์ประกอบรูทที่ไม่สอดคล้องกับกฎ XML สำหรับการตั้งชื่อองค์ประกอบที่ถูกต้อง |
build |
สคีมา
นโยบายแต่ละประเภทจะกำหนดโดยสคีมา XML (.xsd
) สคีมานโยบายมีให้ใช้งานเป็นข้อมูลอ้างอิงใน GitHub