คอมพิวเตอร์ Windows อินเทอร์เน็ต

XML Schema คือคำอธิบายของโครงสร้างของเอกสาร XML สร้างไฟล์ XML ตัวอย่าง XML Schema อย่างง่าย

บางครั้งความเข้าใจ ไฟล์ XMLการส่งไปที่ห้องเกี่ยวกับที่ดินนั้นจำเป็นเมื่อคุณรู้สึกว่าคุณต้องการบางสิ่งที่จะแก้ไขและความอยากรู้อยากเห็นตามธรรมชาติของหลาย ๆ คนได้รับการพัฒนา แต่ ... สำคัญ จำไว้ว่าหลังจากลงนามในไฟล์ EDS คุณจะไม่สามารถแก้ไขไฟล์ XML ได้! ตัวอย่างเช่นจากการฝึกฝนเมื่อแบ่งพล็อตสำหรับหน่วยความจำ 300 เด็กหญิงคนนั้นบังเอิญลบที่อยู่เพียงบรรทัดเดียวจากหนึ่งในแผนการ และนั่นคือมัน .. ไฟล์ XML ไม่ผ่านการตรวจสอบ การค้นหารายการผ่านบันทึกทั้งหมดดูเหมือนจะน่าเบื่อสำหรับฉัน โดยเฉพาะอย่างยิ่งเมื่อฉันรู้ว่าต้องค้นหาอะไร เมื่อเปิดไฟล์ XLM ในตัวแก้ไขการทดสอบด้วยการค้นหา ฉันพบบรรทัดที่ต้องการและทำการเปลี่ยนแปลง แต่ฉันขอย้ำอีกครั้ง - หากคุณแก้ไขไฟล์ คุณต้องเซ็นชื่อใหม่กับ EDS อีกครั้ง มาเริ่มกันเลยดีกว่า ฉันจะนำเสนอภาพวาดและอธิบายพวกเขา

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

ตัดสินโดยตัวนับบรรทัดด้านซ้าย เรามีไฟล์ 336 บรรทัด ดังที่คุณเห็นจากรูปบล็อก ยุบเครื่องหมายบวกทางด้านขวา ดังนั้น ก่อนอื่นฉันจะอธิบายสิ่งที่สามารถเห็นได้จากรูปนี้ทีละบรรทัด จากนั้นเราจะวิเคราะห์บล็อคที่รวมอยู่ในบล็อก เนื่องจากจะมีปริมาณมากที่สุด

เราจะไม่พิจารณาไฟล์ทั้งหมดทีละบรรทัด แต่พิจารณาเฉพาะบรรทัดที่ป้อนข้อมูลของเรา

3 สาย : CodeType = "014" - ประเภทของงาน มีเพียงสองงานเท่านั้น เช่นในกรณีของเรา - การศึกษา และ "015" - การชี้แจง รุ่น = "03" - เวอร์ชัน XMLไฟล์. GUID (Globally Unique Identifier) ​​​​คือตัวระบุ 128 บิตที่ไม่ซ้ำทางสถิติ ในกรณีของเราชื่อไฟล์ต้องตรงกับตัวบ่งชี้นี้
4 สาย : ข้อมูลขององค์กรที่วิศวกรที่ดินทำงาน หรือข้อมูลของวิศวกรที่ดินเอง
5 ไลน์ : รหัสองค์กรผู้รับผลประโยชน์ ในกรณีนี้คือ Management บริการของรัฐบาลกลางการลงทะเบียนของรัฐ ที่ดินและการทำแผนที่ในสาธารณรัฐตาตาร์สถาน

ตอนนี้เราลงไปที่ส่วนท้ายของไฟล์ทันทีโดยพิจารณาจากรูปที่นำเสนอและพิจารณาบล็อก ... บล็อคนี้มีข้อมูลเกี่ยวกับ วิศวกรที่ดินที่ได้ปฏิบัติงาน ถัดมาเป็นบล็อกที่ระบบพิกัดพอดี อนึ่ง "ในค่าไฟล์ข้อความ ให้ระบุเครื่องหมายคำพูด

โดยหลักการแล้ว เมื่อเปิดไฟล์ใน Notepad ++ โครงสร้างทั้งหมดของไฟล์ XML จะมีความชัดเจน - ที่ตั้ง - มีที่อยู่ มูลค่าใน เขียนเมื่อไม่มีส่วนของที่อยู่ใน KLADR

ตัวอย่างของไฟล์ XML แผนที่แผนที่สร้างขึ้นใน ผลิตภัณฑ์ซอฟต์แวร์แผนแผนที่รูปหลายเหลี่ยม

สำหรับมุมมองที่มองเห็นได้ชัดเจนที่สุดของส่วนย่อยนี้ ให้คัดลอกและดูในโปรแกรมแก้ไขการทดสอบ Notepad ++ ซึ่งคุณสามารถดาวน์โหลดได้จากส่วน

ผู้คนต่างไม่แยแสต่อตนเองและผู้อื่น เนื่องจากไม่มีสิ่งใดเกิดขึ้นจากกิจกรรมทั้งหมดของตน หรือตรงกันข้ามกับสิ่งที่พวกเขาพยายามหามาI. เกอเธ่

รูปแบบ XML ได้รับการออกแบบมาเพื่อจัดเก็บข้อมูลที่อาจเป็นประโยชน์ในการทำงานของบางโปรแกรม ไซต์ และการสนับสนุนสำหรับภาษามาร์กอัปบางภาษา การสร้างและเปิดไฟล์ด้วยรูปแบบนี้ไม่ใช่เรื่องยาก สามารถทำได้แม้ว่าคอมพิวเตอร์จะไม่ได้ติดตั้งซอฟต์แวร์พิเศษใดๆ

XML เองเป็นภาษามาร์กอัปซึ่งค่อนข้างคล้ายกับ HTML ที่ใช้ในหน้าเว็บ แต่ถ้าหลังใช้สำหรับการแสดงข้อมูลและมาร์กอัปที่ถูกต้องเท่านั้น XML จะอนุญาตให้มีการจัดโครงสร้างในลักษณะใดรูปแบบหนึ่ง ซึ่งทำให้ภาษานี้เป็นแบบอะนาล็อกของฐานข้อมูลที่ไม่ต้องการ DBMS

คุณสามารถสร้างไฟล์ XML ทั้งโดยใช้โปรแกรมพิเศษและในตัว ข้อความของ Windowsบรรณาธิการ ความสะดวกในการเขียนโค้ดและระดับการทำงานขึ้นอยู่กับประเภทของซอฟต์แวร์ที่ใช้

วิธีที่ 1: Visual Studio

แทนที่จะใช้โปรแกรมแก้ไขโค้ดของ Microsoft คุณสามารถใช้ตัวแก้ไขโค้ดจากนักพัฒนารายอื่นได้ อันที่จริง Visual Studio เป็นเวอร์ชันขั้นสูงกว่าปกติ "สมุดบันทึก"... ขณะนี้โค้ดมีการไฮไลต์แบบพิเศษ ข้อผิดพลาดจะถูกเน้นหรือแก้ไขโดยอัตโนมัติ และมีการโหลดเทมเพลตพิเศษลงในโปรแกรมแล้ว ซึ่งช่วยให้สร้างไฟล์ XML ขนาดใหญ่ได้ง่ายขึ้น

ในการเริ่มต้น คุณต้องสร้างไฟล์ คลิกที่รายการ "ไฟล์"ในแถบด้านบนและจากเมนูแบบเลื่อนลง ให้เลือก "สร้าง…"... รายการจะเปิดขึ้นเมื่อมีการระบุรายการ "ไฟล์".

  • คุณจะถูกโอนไปยังหน้าต่างที่มีตัวเลือกของนามสกุลไฟล์ ตามลำดับ เลือกรายการ "ไฟล์ XML".
  • ไฟล์ที่สร้างขึ้นใหม่จะมีบรรทัดแรกที่มีการเข้ารหัสและเวอร์ชันอยู่แล้ว ค่าเริ่มต้นคือรุ่นแรกและการเข้ารหัส UTF-8ซึ่งคุณสามารถเปลี่ยนได้ตลอดเวลา ถัดไป เพื่อสร้างไฟล์ XML ที่สมบูรณ์ คุณต้องลงทะเบียนทุกอย่างที่อยู่ในคำสั่งก่อนหน้านี้

    เมื่อเสร็จแล้ว เลือกอีกครั้งจากแถบด้านบน "ไฟล์"และจากรายการเมนูแบบเลื่อนลง "บันทึกทั้งหมด".

    วิธีที่ 2: Microsoft Excel

    คุณสามารถสร้างไฟล์ XML โดยไม่ต้องเขียนโค้ดใดๆ เช่น ใช้ Microsoft Excel เวอร์ชันใหม่ ซึ่งช่วยให้คุณบันทึกตารางด้วยส่วนขยายนี้ อย่างไรก็ตาม คุณต้องเข้าใจว่าในกรณีนี้ คุณจะไม่สามารถสร้างสิ่งที่มีประโยชน์มากกว่าตารางปกติได้

    วิธีนี้เหมาะสำหรับผู้ที่ไม่ต้องการหรือไม่ทราบวิธีการทำงานกับโค้ด อย่างไรก็ตาม ในกรณีนี้ ผู้ใช้อาจประสบปัญหาบางอย่างเมื่อเขียนไฟล์ใหม่เป็นรูปแบบ XML ขออภัย การแปลงตารางปกติเป็น XML ทำได้เฉพาะใน MS Excel เวอร์ชันใหม่ล่าสุดเท่านั้น เมื่อต้องการทำเช่นนี้ ใช้คำแนะนำทีละขั้นตอนต่อไปนี้:


    วิธีที่ 3: Notepad

    แม้แต่แบบปกติก็ใช้ได้ดีสำหรับการทำงานกับ XML "สมุดบันทึก"อย่างไรก็ตาม ผู้ใช้ที่ไม่คุ้นเคยกับไวยากรณ์ของภาษาจะมีช่วงเวลาที่ยากลำบาก เนื่องจากต้องเขียนคำสั่งและแท็กต่างๆ กระบวนการนี้จะค่อนข้างง่ายและมีประสิทธิภาพมากขึ้นในโปรแกรมแก้ไขโค้ดเฉพาะทาง เช่น ใน Microsoft Visual Studio มีการเน้นแท็กพิเศษและคำแนะนำเครื่องมือ ซึ่งช่วยลดความยุ่งยากในการทำงานของบุคคลที่ยังใหม่ต่อไวยากรณ์ของภาษานี้

    สำหรับวิธีนี้ คุณไม่จำเป็นต้องดาวน์โหลดอะไรเลย เนื่องจากใน ระบบปฏิบัติการสร้างขึ้นใน "สมุดบันทึก"... ลองทำตาราง XML อย่างง่ายตามคำแนะนำที่กำหนด:


    ผลลัพธ์ที่ได้ควรมีลักษณะดังนี้:




    25
    จริง


    คอมไพเลอร์ XML ต้องประมวลผลโค้ดนี้ในรูปแบบของตารางที่มีคอลัมน์เดียว ซึ่งมีข้อมูลเกี่ยวกับ Ivan Ivanov บางตัว

    วี "สมุดบันทึก"ค่อนข้างเป็นไปได้ที่จะสร้างตารางง่าย ๆ เช่นนี้ แต่เมื่อสร้างอาร์เรย์ข้อมูลจำนวนมากขึ้น ปัญหาอาจเกิดขึ้นเนื่องจากในปกติ "สมุดบันทึก"ไม่มีฟังก์ชันสำหรับแก้ไขข้อผิดพลาดในโค้ดหรือไฮไลต์

    อย่างที่คุณเห็น ไม่มีอะไรยากในการสร้างไฟล์ XML หากต้องการ ผู้ใช้คนใดก็ได้ที่รู้วิธีทำงานบนคอมพิวเตอร์ไม่มากก็น้อยสามารถสร้างได้ อย่างไรก็ตาม ในการสร้างไฟล์ XML ที่สมบูรณ์ ขอแนะนำให้คุณเรียนรู้ภาษามาร์กอัปนี้ อย่างน้อยก็ในระดับพื้นฐาน

    บทนี้จะแสดงวิธีการเขียน XML schema คุณจะได้เรียนรู้ว่าไดอะแกรมสามารถเขียนได้หลายวิธี

    เอกสาร XML

    มาดูเอกสาร XML ต่อไปนี้ที่เรียกว่า "shiporder.xml":

    จอห์นสมิ ธ Ola Nordmann

    Langgt 23
    4000 สตาวังเงร์ นอร์เวย์ อาณาจักรล้อเลียน ฉบับพิเศษ 1 10.90 ซ่อนหัวใจของคุณ 1 9.90

    เอกสาร XML ด้านบนประกอบด้วยองค์ประกอบราก ใบสั่งซื้อด้วยคุณสมบัติที่จำเป็น สั่งซื้อid ... ธาตุ ใบสั่งซื้อมีลูกสามคน: ผู้สั่งการ, shiptoและ รายการ... ธาตุ รายการใช้สองครั้งและมีองค์ประกอบ ชื่อ, องค์ประกอบเสริม บันทึกเช่นเดียวกับองค์ประกอบ ปริมาณและ ราคา.

    เส้น xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" บอก XML parser ว่าเอกสารนี้ควรตรวจสอบกับสคีมา เส้น xsi: noNamespaceSchemaLocation = "shiporder.xsd" ระบุตำแหน่งของสคีมา (ในกรณีนี้ จะอยู่ในโฟลเดอร์เดียวกับไฟล์ "shiporder.xml")

    การสร้างสคีมา XML

    ตอนนี้ มาสร้าง XML schema สำหรับเอกสาร XML ด้านบนกัน

    มาสร้างกัน ไฟล์ใหม่ซึ่งเราจะเรียกว่า "shiporder.xsd" ในการสร้าง XML schema เราจะทำตามโครงสร้างของเอกสาร XML และกำหนดแต่ละองค์ประกอบที่พบ เริ่มต้นด้วยการประกาศ XML มาตรฐานแล้วตามด้วยองค์ประกอบ xs: สคีมา ซึ่งกำหนดโครงร่างเอง:

    ...

    ที่นี่เราใช้เนมสเปซมาตรฐาน ( xs ) และ URI ที่เชื่อมโยงกับเนมสเปซนั้น ซึ่งมีค่าเริ่มต้น http://www.w3.org/2001/XMLSchema .

    ตอนนี้เราต้องกำหนดองค์ประกอบ ใบสั่งซื้อ... องค์ประกอบนี้มีแอตทริบิวต์และมีองค์ประกอบอื่นๆ ดังนั้นเราจึงถือว่าเป็นองค์ประกอบประเภทผสม องค์ประกอบลูกคำจำกัดความ ใบสั่งซื้อลงประกาศ xs: ลำดับ ซึ่งกำหนดลำดับขององค์ประกอบย่อยที่เข้มงวด:

    ...

    ทีนี้มากำหนดองค์ประกอบกัน ผู้สั่งการซึ่งจะเป็นแบบเรียบง่าย (เนื่องจากไม่มีคุณลักษณะหรือองค์ประกอบอื่นๆ) ประเภทของมัน ( xs: สตริง ) นำหน้าด้วยเนมสเปซที่เชื่อมโยงกับ XML schema ซึ่งระบุการใช้ประเภทข้อมูลที่กำหนดไว้ล่วงหน้า:

    ตอนนี้เราต้องกำหนด: shiptoและ รายการ... เริ่มต้นด้วยการกำหนดองค์ประกอบ shipto:

    ด้วยความช่วยเหลือของไดอะแกรม เราสามารถกำหนดองค์ประกอบใดๆ คุณลักษณะจะช่วยเราในเรื่องนี้ maxOccurs และ minOccurs ... คุณลักษณะ maxOccurs ระบุจำนวนครั้งสูงสุดขององค์ประกอบและแอตทริบิวต์ minOccurs ระบุจำนวนขั้นต่ำของการเกิด โดยค่าเริ่มต้น ค่าของแอตทริบิวต์ทั้งสองคือ 1

    ทีนี้มากำหนดองค์ประกอบกัน รายการ... องค์ประกอบนี้สามารถใช้ได้ไม่จำกัดจำนวนครั้งภายในองค์ประกอบ ใบสั่งซื้อ... กำหนดคุณลักษณะดังกล่าวขององค์ประกอบ รายการอนุญาตให้การมอบหมายแอตทริบิวต์ maxOccurs ความหมาย "ไม่มีขอบเขต" ... ซึ่งหมายความว่าธาตุ รายการสามารถใช้ได้หลายครั้งตามที่ผู้เขียนเอกสารต้องการ โปรดทราบว่าองค์ประกอบ บันทึกไม่จำเป็น. เรากำหนดสิ่งนี้โดยการตั้งค่าแอตทริบิวต์ minOccurs เป็นศูนย์:

    ตอนนี้เราสามารถประกาศแอตทริบิวต์ขององค์ประกอบ ใบสั่งซื้อ... เนื่องจากเป็นแอตทริบิวต์ที่จำเป็น เราจึงใช้คำจำกัดความ ใช้ = "จำเป็น" .

    หมายเหตุ: ควรประกาศแอตทริบิวต์ล่าสุดเสมอ:

    นี่คือรหัสที่สมบูรณ์สำหรับไฟล์สคีมา "shiporder.xsd":

    การแยกสคีมา

    วิธีการเลย์เอาต์แบบเดิมของสคีมานั้นค่อนข้างง่าย แต่เมื่อเอกสารค่อนข้างซับซ้อน วิธีนี้จะทำให้สคีมาที่สอดคล้องกันค่อนข้างยุ่งยาก ซึ่งจะส่งผลกระทบอย่างมากต่อความสามารถในการอ่านและการบำรุงรักษา

    วิธีถัดไปในการจัดวางแบบแผนคือกำหนดองค์ประกอบและแอตทริบิวต์ทั้งหมดก่อน แล้วจึงอ้างอิงคำจำกัดความเหล่านี้โดยใช้แอตทริบิวต์ อ้างอิง .

    ต่อไปนี้เป็นโครงร่างใหม่ของไฟล์สคีมา ("shiporder.xsd"):

    การใช้ประเภทที่มีชื่อ

    วิธีที่สามในการจัดวางสคีมาเกี่ยวข้องกับการกำหนดคลาสหรือประเภทที่อนุญาตให้ใช้นิยามสมาชิกซ้ำได้ สิ่งนี้เป็นไปได้โดยการตั้งชื่อให้กับองค์ประกอบต่างๆ simpleTypes และ complexTypes แล้วชี้ไปที่พวกเขาโดยใช้แอตทริบิวต์ พิมพ์ .

    วิธีที่สามในการลิงก์ไฟล์สคีมา ("shiporder.xsd"):

    ธาตุ ข้อจำกัดระบุว่าชนิดข้อมูลได้มาจากชนิดข้อมูลในเนมสเปซ W3C XML Schema ดังนั้น รหัสต่อไปนี้หมายความว่าค่าขององค์ประกอบหรือแอตทริบิวต์ต้องเป็นสตริง:

    อย่างไรก็ตามบ่อยครั้งที่องค์ประกอบ ข้อจำกัดใช้เพื่อกำหนดข้อจำกัดขององค์ประกอบ ดูบรรทัดต่อไปนี้จากแผนภาพด้านบน:

    ข้อมูลโค้ดนี้ระบุว่าค่าขององค์ประกอบหรือแอตทริบิวต์ต้องเป็นสตริง มีความยาวหกอักขระพอดี และอักขระเหล่านั้นต้องเป็นตัวเลขตั้งแต่ 0 ถึง 9

    สำหรับตัวอย่างทั้งหมดด้านล่าง จะใช้มาตรฐานภาษา XSL การปรับเปลี่ยนมาตรฐานนี้ให้ทันสมัยยิ่งขึ้น ภาษา XSL ก็ใช้กันอย่างแพร่หลายเช่นกัน NSรายละเอียดเพิ่มเติมที่คุณสามารถอ่านได้ใน \ xml \ XSLTutorial หรือ MSDN

    ลองดูไฟล์ XML ตัวอย่างง่ายๆ (ex01.xml) ตัวอย่างนี้และตัวอย่างอื่นๆ สามารถพบได้ในโฟลเดอร์ \ xml \ XSLTForBeginers บนดิสก์



    หมายเหตุ XSL

    ถ้าเราเปิดไฟล์นี้ใน อินเทอร์เน็ตเบราว์เซอร์ Explorer เราจะเห็นข้อความเดียวกับที่แสดงด้านบนพร้อมกับแท็กและข้อมูลบริการทั้งหมด แต่เราไม่ต้องการแท็กและข้อมูลการบริการ! เราต้องการดูเฉพาะข้อมูลที่เกี่ยวข้องกับกรณีและด้วยความช่วยเหลือของแท็ก - เพื่อจัดการ รูปร่างข้อมูลเหล่านี้. งานนี้สามารถแก้ไขได้ง่ายและเรียบง่าย: คุณต้องเพิ่มเทมเพลตการแปลง - ไฟล์ XSL - ลงในไฟล์ XML

    มาเขียนไฟล์ XML ใหม่ดังนี้ (ex01-1.xml)




    หมายเหตุ XSL

    และสร้างไฟล์ XSL ex01-1.xsl ข้อความของไฟล์แสดงอยู่ด้านล่าง






    หากตอนนี้เราเปิดไฟล์ ex01-1.xsl ในเบราว์เซอร์ Internet Explorerจากนั้นเราจะเห็นว่างานของเราได้รับการแก้ไขแล้ว - มีเพียงข้อมูลที่เราต้องการเท่านั้นที่ยังคงอยู่บนหน้าจอ แท็กทั้งหมดหายไป ผลลัพธ์ที่คุณได้รับบนหน้าจอเบราว์เซอร์แสดงอยู่ด้านล่าง

    หมายเหตุ XSL

    นอกจากนี้ยังง่ายที่จะเห็นว่าลำดับของเอาต์พุตบรรทัดนั้นถูกกำหนดโดยเนื้อหาของเทมเพลตการแปลง - ไฟล์ XSL เท่านั้น หากจำเป็น เทมเพลตสามารถเปลี่ยนแปลงได้อย่างง่ายดายโดยไม่ต้องเปลี่ยนไฟล์ XML หลักของเราเลย

    มาเขียนไฟล์ XML ใหม่กัน เราจะไม่เปลี่ยนส่วนที่ให้ข้อมูล แต่ระบุเทมเพลตอื่น ex01-2.xml




    หมายเหตุ XSL

    มาสร้างไฟล์ XSL กันเถอะ ex01-2.xsl ข้อความของไฟล์แสดงอยู่ด้านล่าง






    หากตอนนี้เราเปิดไฟล์ ex01-2.xsl ใน Internet Explorer ผลลัพธ์จะแตกต่างออกไป

    หมายเหตุ XSL

    ตอนนี้ขอชี้ให้เห็นถึงช่วงเวลาที่สำคัญสำหรับนักพัฒนาฐานข้อมูล ข้อมูลในหน้า XML มักจะปรากฏจากการสืบค้นฐานข้อมูล การสืบค้นฐานข้อมูลในสภาพแวดล้อมที่มีผู้ใช้หลายคนนั้นมีราคาแพงมาก สมมติว่าตอนนี้เราไม่มี XML และเรากำลังสร้างหน้า HTML แบบคงที่มาตรฐาน ในกรณีนี้ เพื่อแก้ปัญหาการเปลี่ยนแปลงอย่างง่ายของการแสดงข้อมูลภายนอก ตัวอย่างเช่น เพื่อเปลี่ยนการเรียงลำดับ เรามีสองวิธีในการแก้ปัญหา: ดำเนินการค้นหาและเก็บผลลัพธ์ไว้ในบัฟเฟอร์ชั่วคราวบนเซิร์ฟเวอร์ หรือทุกครั้งที่มีการเปลี่ยนแปลงการแสดงภายนอก ให้ดำเนินการค้นหาใหม่และสร้างหน้า HTML ใหม่

    วิธีแรกต้องใช้การเขียนโปรแกรมที่ลำบาก วิธีที่สองเพิ่มภาระงานบนเซิร์ฟเวอร์ฐานข้อมูลอย่างมาก ซึ่งประสิทธิภาพมักจะเป็นคอขวดของระบบ - ผู้ใช้ต้องการรับผลลัพธ์เร็วขึ้นเสมอ

    XML และ XSL เป็นโซลูชันที่ครอบคลุมสำหรับปัญหาที่อธิบายไว้ข้างต้น อันที่จริง หน้า XML เป็นบัฟเฟอร์ชั่วคราวสำหรับผลลัพธ์การสืบค้น ตอนนี้เราใช้กลไก XSL มาตรฐานแทนการตั้งโปรแกรมที่ไม่ได้มาตรฐานและใช้เวลานาน

    มีการพิจารณาอีกอย่างหนึ่งที่อาจมีความสำคัญสำหรับนักพัฒนาฐานข้อมูล DBMS ที่ทันสมัยส่วนใหญ่สามารถจัดรูปแบบผลลัพธ์ของการสืบค้นฐานข้อมูลเป็นไฟล์ XML นั่นคือ เมื่อสร้างอินเทอร์เฟซผู้ใช้ในกรอบงานของเทคโนโลยี XML และ XSL เราได้รับความเป็นอิสระจากผู้ขาย DBMS ในแง่ขององค์กรของการถอน - ความเป็นอิสระเกือบสมบูรณ์ และส่วนนี้ค่อนข้างใหญ่ในแอปพลิเคชันที่เน้นฐานข้อมูลส่วนใหญ่ แน่นอน นอกจากเอาต์พุตแล้ว ยังมีการประมวลผลอินพุตและเซิร์ฟเวอร์ของตรรกะทางธุรกิจด้วย แต่ที่นี่คุณจะต้องมองหาโซลูชันอื่นๆ

    ก้าวแรก

    ให้เราพิจารณาตัวอย่างแรกโดยละเอียดยิ่งขึ้น ให้เราจำข้อความของมัน



    หมายเหตุ XSL

    บรรทัดแรกแจ้งเบราว์เซอร์ว่าไฟล์อยู่ในรูปแบบ XML ต้องระบุแอตทริบิวต์รุ่น แอตทริบิวต์การเข้ารหัสเป็นทางเลือก แต่ถ้าคุณมีตัวอักษรรัสเซียในข้อความของคุณ คุณต้องแทรกแอตทริบิวต์นี้ มิฉะนั้น ไฟล์ XML จะไม่ถูกประมวลผล - คุณจะได้รับข้อความแสดงข้อผิดพลาด

    บรรทัดต่อไปนี้เป็นเนื้อหาของไฟล์ XML ประกอบด้วยองค์ประกอบที่รวมกันเป็นโครงสร้างต้นไม้ องค์ประกอบจะถูกระบุโดยแท็กและสามารถซ้อนอยู่ภายในกันได้

    องค์ประกอบสามารถมีคุณสมบัติที่สามารถประมวลผลค่าตามเทมเพลตได้

    มีหนึ่งองค์ประกอบที่ระดับบนสุดของไฟล์ XML เสมอ นั่นคือไฟล์ของแบบฟอร์ม



    หมายเหตุ XSL



    "ความรู้เบื้องต้นเกี่ยวกับ CSP"

    จะไม่ถูกประมวลผลโดยเบราว์เซอร์ หากต้องการแปลงเป็นไฟล์ XML ที่ถูกต้อง คุณต้องเพิ่มแท็กองค์ประกอบ ระดับสูง, ตัวอย่างเช่น




    หมายเหตุ XSL



    "ความรู้เบื้องต้นเกี่ยวกับ CSP"


    โปรดทราบว่าชื่อแท็กจะคำนึงถึงตัวพิมพ์เล็กและตัวพิมพ์ใหญ่ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ได้ในหนังสือเล่มใด ๆ เกี่ยวกับองค์ประกอบและคุณลักษณะ XML หนังสือเหล่านี้ให้ความสนใจเป็นอย่างมาก

    ไปที่เทมเพลตการแปลง - ไฟล์ XSL งานของไฟล์ XSL คือการแปลงแผนผังของไฟล์ XML เป็นโครงสร้างอื่น ตัวอย่างเช่น จะสอดคล้องกับรูปแบบ HTML และสามารถแสดงบนหน้าจอเบราว์เซอร์ได้ โดยคำนึงถึงการจัดรูปแบบบัญชี การเลือกแบบอักษร เป็นต้น

    เพื่อให้เบราว์เซอร์ทำการเปลี่ยนแปลงที่จำเป็น คุณต้องระบุลิงก์ไปยังไฟล์ XSL ในไฟล์ XML


    ทีนี้มาดูข้อความของไฟล์ XSL กัน






    บรรทัดแรกของไฟล์มีแท็กองค์ประกอบ xsl: stylesheet แอตทริบิวต์ขององค์ประกอบคือหมายเลขเวอร์ชันและการอ้างอิงเนมสเปซ แอตทริบิวต์เหล่านี้ขององค์ประกอบ xsl: stylesheet เป็นสิ่งจำเป็น ในกรณีของเรา เนมสเปซคือชื่อองค์ประกอบและแอตทริบิวต์ทั้งหมดที่ใช้ในไฟล์ XSL สำหรับไฟล์ XSL การอ้างอิงเนมสเปซเป็นมาตรฐาน

    โปรดทราบว่าไฟล์ XSL เป็นไฟล์ XML ประเภทหนึ่ง ไม่มีข้อมูลผู้ใช้ แต่รูปแบบเหมือนกัน ไฟล์มีองค์ประกอบระดับบนสุด xsl: สไตล์ชีต ตามด้วยแผนผังของกฎการแปลง

    ในเอกสารนี้ เราจะไม่อธิบายรายละเอียดว่าแต่ละองค์ประกอบของไฟล์ XSL หมายถึงอะไร เราจะให้ตัวอย่างต่างๆ และแสดงผลในแต่ละตัวอย่าง ซึ่งจะทำให้สามารถแมปองค์ประกอบต่างๆ ของไฟล์ XSL และการแปลงไฟล์ XML ดั้งเดิมได้อย่างอิสระด้วยข้อมูลผู้ใช้ที่เริ่มต้นโดยองค์ประกอบเหล่านี้ โปรดทราบด้วยว่าค่าของแอตทริบิวต์ เลือกและคำที่คล้ายกันซึ่งมีความหมายว่า "เลือก" เขียนเป็นภาษาพิเศษ XPathซึ่งคุณสามารถอ่านโดยสังเขปบนดิสก์ \ xml \ XPathTutorial และรายละเอียดเพิ่มเติมใน MSDN

    ต่อไปนี้ เราจะนำเสนอข้อความของไฟล์ XML และ XSL เป็นขาวดำ คุณสามารถเปิดไฟล์จริงและดูทุกอย่างเป็นสีได้ หากจำเป็น ให้แสดงความคิดเห็นในลิงก์ไปยังไฟล์ XSL ไวยากรณ์ความคิดเห็นมีดังนี้ -... คุณไม่สามารถแทรกสัญลักษณ์ - ลงในข้อความแสดงความคิดเห็น

    ในตัวอย่างแรก เราเห็นว่าองค์ประกอบ xsl: value-of สามารถใช้แสดงเนื้อหาขององค์ประกอบ (ข้อความที่อยู่ระหว่างแท็ก) ในรูปแบบ HTML ได้อย่างไร ตอนนี้เราจะมาดูกันว่าองค์ประกอบเดียวกันนั้นสามารถใช้เพื่อแสดงค่าของแอตทริบิวต์ขององค์ประกอบได้อย่างไร

    พิจารณาไฟล์ XML ต่อไปนี้ ex02-1.xml

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

    เพื่อชื่นชมข้อดีของ XML Schema เหนือ DTD มาดูข้อเสียหลักของ DTD ที่แก้ไขได้สำเร็จใน XML Schema อย่างละเอียด ฉันได้กล่าวถึงพวกเขาแล้วในบทความ "" แต่เพื่อความเข้าใจที่ดีขึ้น เรามาทำซ้ำกัน

    ข้อเสียของ XML DTD เหนือ XML Schema

    1. ไวยากรณ์ภาษาอื่นที่ไม่ใช่ XML นั่นคือ DTD ไม่ใช่ XML ซึ่งอาจนำไปสู่ปัญหาต่างๆ ในการเข้ารหัสและยืนยันเอกสาร XML
    2. ไม่มีการตรวจสอบประเภทข้อมูล มีข้อมูลประเภทเดียวเท่านั้นใน XML DTD - สตริง ในกรณีนี้ ตัวอย่างเช่น หากมีข้อความในช่องตัวเลข เอกสารจะยังคงได้รับการตรวจสอบ เนื่องจาก XML DTD ไม่สามารถตรวจสอบชนิดข้อมูลได้
    3. คุณไม่สามารถแมป DTD คำอธิบายมากกว่าหนึ่งรายการกับเอกสาร XML เดียว นั่นคือ เอกสารสามารถตรวจสอบได้ด้วยคำอธิบาย DTD เดียวเท่านั้น หากมีหลายรายการ คุณจะต้องทำคำอธิบายซ้ำและรวมทุกอย่างไว้ในไฟล์เดียว ซึ่งไม่สะดวกมาก

    สิ่งเหล่านี้เป็นข้อบกพร่องหลักของ XML DTD ซึ่งได้รับการแก้ไขเรียบร้อยแล้วในมาตรฐานอุตสาหกรรมสำหรับการอธิบายเอกสาร XML หรือ XML Schema

    XML Schema - มาตรฐานอุตสาหกรรมสำหรับการอธิบายเอกสาร XML

    กล่าวโดยย่อ XML Schema ทำสิ่งต่อไปนี้:

    1. อธิบายชื่อองค์ประกอบและคุณลักษณะ (พจนานุกรม)
    2. อธิบายความสัมพันธ์ระหว่างองค์ประกอบและแอตทริบิวต์และโครงสร้าง (โมเดลเนื้อหา)
    3. อธิบายประเภทข้อมูล

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

    ตัวอย่าง XML Schema สำหรับการตรวจสอบเอกสาร XML

    จากการฝึกฝนแสดงให้เห็นว่าเนื้อหานั้นหลอมรวมได้ดีกว่ามากหากคุณเริ่มศึกษาด้วยตัวอย่างทันที ฉันต้องบอกทันทีว่าเราจะไม่เจาะลึกรายละเอียดปลีกย่อยทั้งหมด เนื่องจากเนื้อหานั้นซับซ้อนมาก โดยเฉพาะอย่างยิ่งหากคุณศึกษาในรูปแบบข้อความ

    ตัวอย่าง XML Schema อย่างง่าย

    เมื่อใช้สคีมานี้ คุณจะตรวจสอบความถูกต้องของเอกสาร XML ที่มีเนื้อหาต่อไปนี้ได้

    <книга xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation = "book.xsd"> <название>พื้นฐาน XML <цена>300

    ดังนั้น กลับไปที่สคีมา XML ของเรา อย่างที่คุณสังเกตเห็นแล้วว่ามีการใช้ XML ที่เรารู้จักอยู่แล้วเพื่อสร้าง XML schema ข้อแตกต่างเพียงอย่างเดียวที่นี่คือ XML Schema กำหนดองค์ประกอบแล้ว ซึ่งแตกต่างจาก XML ปกติ ด้วยเหตุนี้ จึงมีการใช้เนมสเปซ ในกรณีนี้ เนมสเปซที่ต้องการคือ "http://www.w3.org/2001/XMLSchema" ซึ่งจะขึ้นต้นด้วย "xs"

    ฉันต้องการทราบทันทีว่าคุณสามารถใช้ทั้งคำนำหน้าเนมสเปซและตั้งค่าเนมสเปซสำหรับองค์ประกอบรูท ดังนั้นจึงไม่มีความแตกต่างที่นี่ ทุกคนตัดสินใจด้วยตัวเองว่าจะทำอย่างไรในสถานการณ์ที่กำหนด ฉันจะบอกว่ามักใช้คำนำหน้า "xs" หรือ "xsd"

    ทีนี้มาดูวิธีถอดรหัสโครงร่างด้านบนกัน ดังที่ได้กล่าวไว้ข้างต้น XML Schema คือคำอธิบายของพจนานุกรมและประเภทข้อมูล จากนี้เราจะถอดรหัสแต่ละองค์ประกอบ

    • - เราประกาศองค์ประกอบ "หนังสือ" ด้วยประเภท "หนังสือ"
    • - เราประกาศประเภทที่ซับซ้อนที่ชื่อว่า "Book" (xs: complexType - อาจมีองค์ประกอบที่ซ้อนกัน)
    • - ประกาศการทำรัง นั่นคือประเภทจะมีองค์ประกอบที่ซ้อนกัน
    • - เราประกาศองค์ประกอบที่มีชื่อ "ชื่อ" (ของประเภทมาตรฐาน "สตริง" - xs: string)
    • - เราประกาศองค์ประกอบชื่อ "ราคา" (ของประเภทมาตรฐาน "ตัวเลข" - xs: ทศนิยม)

    อย่างที่คุณเห็น ไม่มีอะไรซับซ้อนมากที่นี่ ถ้าคุณคิดเกี่ยวกับมัน ทุกอย่างง่ายมาก

    องค์ประกอบ XML Schema พื้นฐาน

    กล่าวโดยย่อ XML schema สามารถอธิบายได้ดังนี้

    วงจรของคุณ

    ดังที่คุณเห็นจากตัวอย่าง XML schema แต่ละรายการประกอบด้วยองค์ประกอบราก "schema" และเนมสเปซที่จำเป็น "http://www.w3.org/2001/XMLSchema" ต่อไปนี้เป็นคำอธิบายของวงจรและวงจรเอง ในเวลาเดียวกัน บ่อยครั้งในสคีมาคุณภาพสูงมาก คำอธิบายมีขนาดใหญ่กว่า XML Schema เองมาก

    คำอธิบายขององค์ประกอบใน XML Schema

    ในตอนต้นของบทความ เราได้ดูตัวอย่างของ XML schema ที่ง่ายที่สุดแล้ว ในนั้นเราได้อธิบายองค์ประกอบและประเภทแยกกัน ในเวลาเดียวกัน ฉันต้องการทราบทันทีว่าซีเควนซ์นี้ไม่มีบทบาท วงจรจะทำงานต่อไป

    ทีนี้มาดูวิธีที่สองในการเขียน XML Schema ซึ่งอิงจากการอธิบายประเภททันทีภายในองค์ประกอบ NS ทางจะพอดีในกรณีที่คุณไม่ได้วางแผนที่จะใช้คำอธิบายเดียวกันสำหรับองค์ประกอบต่างๆ เพื่อความชัดเจน ลองพิจารณาตัวอย่าง

    ดังที่คุณเห็นจากตัวอย่าง องค์ประกอบถูกประกาศโดยใช้โครงสร้างพิเศษ "องค์ประกอบ" โดยใช้คำนำหน้าที่เหมาะสม ในกรณีนี้ เรากำหนดองค์ประกอบที่เรียกว่า "รูท" โดยไม่ระบุประเภท (ประเภท) เนื่องจากจะอธิบายไว้ในองค์ประกอบ นั่นคือ มีสองวิธีในการอธิบายรายการ

    1 วิธี

    พิมพ์ คำอธิบาย

    2 ทาง

    คำอธิบายประเภทรายการ

    คุณสามารถใช้ทั้งวิธีแรกและวิธีที่สอง พวกเขาทั้งหมดทำงานในลักษณะเดียวกัน คำถามเดียวคือความสะดวกในกรณีนี้โดยเฉพาะ

    นอกจากนี้ หลังจากการประกาศองค์ประกอบ เราระบุว่าเป็นประเภทที่ซับซ้อน ( ) และแจกแจง ( ) องค์ประกอบที่ซ้อนกัน ในกรณีนี้ นี่คือชื่อองค์ประกอบและอายุที่มีประเภท "xs: string" และ "xs: integer" คำนำหน้า xs หมายความว่านี่เป็นประเภทพื้นฐานที่ได้อธิบายไว้แล้วในมาตรฐาน XML Schema

    อย่างที่คุณเห็น ทุกอย่างค่อนข้างเรียบง่ายจนถึงตอนนี้ อีกครั้ง เราจะไม่ลงรายละเอียดทั้งหมด เนื่องจากบทความนี้มีจุดมุ่งหมายเพื่อทำความคุ้นเคยกับ XML Schema และไม่ศึกษารายละเอียด

    XML Schema และการทำแผนที่เอกสารอย่างไร

    ลักษณะเฉพาะของ XML Schema คือไม่ได้อธิบายตัวเอกสารเอง แต่เป็นเนมสเปซ ในเรื่องนี้ส่วนใหญ่มักจะไม่มีการกล่าวถึงเธอในเอกสาร ตัวจัดการจะจับคู่สคีมาที่คุณต้องการโดยไม่ต้องใช้คำแนะนำใดๆ ในเอกสาร XML

    ในกรณีที่ตัวจัดการไม่ทราบว่าสคีมาอยู่ที่ใด เราสามารถระบุตำแหน่งที่จะค้นหาได้ ทำได้โดยใช้แอตทริบิวต์ "schemaLocation" พิเศษ เนื่องจากแอตทริบิวต์นี้เป็นของเนมสเปซอื่น จึงต้องระบุช่องว่างก่อนใช้แอตทริบิวต์ เพื่อความชัดเจน ลองพิจารณาตัวอย่าง

    XML Schema

    เอกสาร XML

    ตอนนี้เรามาดูแต่ละบรรทัดกันดีกว่า

    • targetNamespace = "http://www.site.com" - ระบุเนมสเปซ XML Schema นี้สำหรับเนมสเปซ
    • xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" - เชื่อมต่อเนมสเปซที่อธิบายแอตทริบิวต์ "schemaLocation"
    • xsi: schemaLocation = "http://www.site.com/product.xsd" - ระบุว่าจะพบสคีมาได้ที่ไหน ในกรณีที่ parser ไม่ทราบว่าอยู่ที่ไหน หากเอกสาร XML ไม่ได้อยู่ในเนมสเปซใดๆ และดังนั้นจึงไม่มีการอ้างอิงถึงเอกสารดังกล่าวในสคีมา แอตทริบิวต์ "schemaLocation" จะถูกแทนที่ด้วย "noNamespaceSchemaLocation" (การอ้างอิงถึงสคีมาโดยไม่มีการกำหนดเนมสเปซ)

    นั่นคือทั้งหมดที่ ขอให้โชคดีและประสบความสำเร็จในการเรียนรู้ XML!