DevToys Web Pro iconDevToys Web Proบล็อก
ให้คะแนนเรา:
ลองใช้ส่วนขยายเบราว์เซอร์:

ตัวตรวจสอบความถูกต้อง XML / XSD

ฝั่งเซิร์ฟเวอร์

ตัวอย่าง

ผลการตรวจสอบความถูกต้อง

กำลังโหลดการตรวจสอบ...

สคีมา XSD

  • เอกสาร XML

  • Loading editor...
    Loading editor...
    รายละเอียดทางเทคนิค

    ตัวตรวจสอบ XML / XSD ทำงานอย่างไร

    เครื่องมือนี้ทำอะไร

    ตัวตรวจสอบ XML XSD นี้ตรวจเอกสาร XML เทียบกับคำจำกัดความ XML Schema โดยใช้การประมวลผลฝั่งเซิร์ฟเวอร์ เครื่องมือนี้ตรวจสอบโครงสร้าง ชนิดข้อมูล ลำดับขององค์ประกอบ และข้อกำหนดของแอตทริบิวต์ที่กำหนดไว้ในสคีมาของคุณ เมื่อการตรวจสอบล้มเหลว จะรายงานข้อผิดพลาดเฉพาะพร้อมหมายเลขบรรทัดและคอลัมน์เมื่อมีข้อมูล ตัวตรวจสอบรองรับเนมสเปซ ชนิดแบบซับซ้อน ข้อจำกัดแบบ sequence และ facet ของสคีมา เช่น การจับคู่แพตเทิร์นและข้อจำกัดของค่า

    ตัวอย่าง: การตรวจสอบแคตตาล็อกหนังสือ

    พิจารณาสคีมา XSD นี้ที่กำหนดให้หนังสือต้องมี ID แบบจำนวนเต็ม และราคาแบบทศนิยม:

    <xs:element name="book">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="title" type="xs:string"/>
                <xs:element name="price" type="xs:decimal"/>
              </xs:sequence>
              <xs:attribute name="id" type="xs:integer" use="required"/>
            </xs:complexType>
          </xs:element>

    XML ที่ไม่ถูกต้อง เช่น &lt;book id="abc"&gt;&lt;price&gt;not-a-number&lt;/price&gt;&lt;/book&gt; จะไม่ผ่านการตรวจสอบ โดยมีข้อผิดพลาดข้อจำกัดชนิดข้อมูลทั้งสำหรับแอตทริบิวต์ ID และองค์ประกอบราคา

    กรณีการใช้งานที่พบบ่อย

    นักพัฒนาใช้การตรวจสอบ XML Schema เมื่อผสานรวมกับ SOAP API ตรวจสอบไฟล์คอนฟิก หรือประมวลผลรูปแบบการแลกเปลี่ยนข้อมูล สถานการณ์ที่พบบ่อย ได้แก่ การตรวจสอบการตอบกลับของ API เทียบกับสคีมาที่เผยแพร่ การเช็กไฟล์คอนฟิกก่อนดีพลอย และการทำให้มั่นใจถึงคุณภาพข้อมูลในไปป์ไลน์ ETL ตัวตรวจสอบมีประโยชน์อย่างยิ่งในการจับความไม่ตรงกันของชนิดข้อมูล การขาดองค์ประกอบที่จำเป็น และลำดับองค์ประกอบที่ไม่ถูกต้อง ก่อนที่ข้อมูลจะไปถึงระบบโปรดักชัน

    เอนจินการตรวจสอบและข้อจำกัด

    เครื่องมือนี้ใช้ libxml2 ผ่าน libxmljs binding ของ Node.js โดยรองรับมาตรฐาน XML Schema 1.0 ตัวตรวจสอบประมวลผลสคีมาทั้งหมดฝั่งเซิร์ฟเวอร์เพื่อความปลอดภัย และจะไม่ดึงทรัพยากรภายนอกหรือแก้ไขการนำเข้า (import) ที่อิงเครือข่าย การประมวลผล external entity (XXE) ถูกปิดใช้งานเพื่อความปลอดภัย การ include และ import ของสคีมาจะทำงานได้ก็ต่อเมื่อสคีมาที่อ้างอิงทั้งหมดถูกระบุไว้ในเนื้อหา XSD หลัก

    • การเข้าถึงเครือข่าย:ถูกบล็อกเพื่อความปลอดภัย
    • การนำเข้าสคีมา:ต้องอยู่ในเนื้อหาเดียวกัน ไม่มีการแก้ไขภายนอก
    • External entities:ปิดใช้งาน (ป้องกัน XXE)
    • ขีดจำกัดการประมวลผล:มีการกำหนดขีดจำกัดขนาดที่เหมาะสม

    การประมวลผลฝั่งเซิร์ฟเวอร์เทียบกับฝั่งไคลเอนต์

    การตรวจสอบความถูกต้องของโครงสร้าง XML (well-formedness) ฝั่งไคลเอนต์เพียงพอสำหรับการตรวจสอบไวยากรณ์พื้นฐาน อย่างไรก็ตาม การตรวจสอบความถูกต้องด้วย XSD ต้องใช้เอนจินเฉพาะทาง เนื่องจากเบราว์เซอร์ไม่ได้มีตัวประมวลผล XML Schema มาให้ การตรวจสอบฝั่งเซิร์ฟเวอร์ช่วยให้ได้ผลลัพธ์ที่สม่ำเสมอ รองรับความสามารถของสคีมาที่ซับซ้อน เช่น การสืบทอดและการนำเข้า (imports) และให้การแยกส่วนด้านความปลอดภัยจากเนื้อหา XML ที่อาจเป็นอันตราย