Thursday 24 August 2017

Sys xmltype เก็บ ไบนารี ตัวเลือก


ฉันใช้คอลัมน์ XMLType ในบางตาราง oracle ฐานข้อมูลของฉัน ก่อนหน้านี้ (ใน 11.2.0.2) ประเภทการจัดเก็บข้อมูลดีฟอลต์ที่พิจารณาคือ CLOB ดังนั้นหากคุณพิมพ์ข้อความค้นหาสำหรับคอลัมน์ XMLType ฉันจะเห็นเนื้อหาของคอลัมน์เป็นสตริง XML แต่เมื่อฉันวางและสร้างตารางใหม่ทั้งหมดและแทรกข้อมูลบางส่วนฉันไม่สามารถรับเนื้อหาของคอลัมน์ XMLType ได้ มัน simpley แสดง XMLType ใน cloumn ค่า ฉันสงสัยว่าประเภทการจัดเก็บข้อมูลจะถูกระงับใน BINARY XML ดังนั้นฉันจึงออกคำสั่ง alter ต่อไปนี้: โปรดทราบว่ามีข้อมูลอยู่ในตารางแล้ว เหตุการณ์หลังจากที่ฉันลบและแทรกแถวเนื้อหาจะแสดงเป็น XMLType ฉันใช้เครื่องมือ UI สำหรับนักพัฒนาซอฟต์แวร์ ใครสามารถแนะนำวิธีการแก้ไขปัญหานี้ได้ตกลงตอนนี้เราตัดสินใจว่าเราจะจัดเก็บเนื้อหาคอลัมน์ XMLType เป็น SECURE FILE BINARY XML ดังนั้นเราจึงมีตารางดังนี้: XMLType colum จะแสดงเป็น SYS. XMLType ใน sql developer ดังนั้นวิธีการได้รับเนื้อหาของไบนารี XML SELECT x. ID, x. Vid, x. details. getCLOBVal () จาก XMYTYPETESTx ที่ x. ID100000 แบบสอบถามข้างต้นทำงานให้ฉันในที่สุดเอกสาร Oracle อ้างว่าเก็บ XMLType เพิ่มเติม มีขนาดกะทัดรัดเป็น BINARY XML มากกว่า CLOB แต่ฉันจะหาจำนวนเนื้อที่ที่ถ่ายโดยไบนารี xml ดังนั้น vsize น่าจะเป็นขนาดของตัวชี้หรือ LOB locator บางส่วนและ getclobval จะเรียกคืนไบนารี XML ลงในข้อความ แต่สิ่งที่เกี่ยวกับขนาดการเก็บรักษาของ XML ไบนารีตัวเองช่วยกรุณาขนาดตารางเป็น 340GB ดังนั้นมูลค่ามองหาในตัวเลือกการจัดเก็บ ถาม 15 ก. ค. 14 ที่ 17:41 ดีส่วนหนึ่งไม่มีอะไรจะทำอย่างไรกับแถวดังกล่าว ส่วนคือทั้งตารางพาร์ติชันตารางดัชนี LOB สิ่งที่สำคัญคือการจัดเก็บมากกว่า 4k ภายในนั้นเพื่อให้ lob ของคุณจะถูกเก็บไว้ linequot quotin ซึ่งหมายความว่าภายในบล็อกฐานข้อมูลที่เกิดขึ้นจริงของแถวตัวเอง แต่ถูกเก็บไว้ในส่วน quoted lineod LOB ndash gvenzl 22 ก. ค. 14 เวลา 13.00 น. ตัวแทนไม่อนุญาตให้โพสต์ความคิดเห็นที่คุณต้องการพูดระหว่างคำถามที่ฉันเข้าใจ ความคล้ายคลึงกันเพียงอย่างเดียวคือปัญหาพื้นที่จัดเก็บคิดว่าอาจเป็นประโยชน์สำหรับการประมาณการเดา คุณไม่ได้กล่าวถึงประเภทของข้อมูลที่คุณจะจัดเก็บเป็น bXML แกะ XML ไบนารีลงในข้อความถ้า XML บริสุทธิ์ขึ้นอยู่กับว่าคุณใช้คอมเพรสเซอร์ใด มักใช้ lzmagzip สำหรับการบีบอัดแบบไบนารี บางทีฉันอาจจะเขียนเกี่ยวกับสิ่งที่เห็นได้ชัด แต่สิ่งที่ฉันรู้ 5 การใช้ไบนารีเอ็กเอ็มแอลกับภาษาจาวาการแนะนำไบนารีเอ็กเอ็มแอลสำหรับภาษาจาวาไบนารีเอ็กเอ็มแอลถูกนำมาใช้ใน Oracle 11 g Release 1 (11.1) ไบนารี XML ทำให้สามารถเข้ารหัสและถอดรหัสระหว่างข้อความ XML และบีบอัดไบนารี XML ได้ สำหรับประสิทธิภาพ DOM และ SAX APIs จะมีอยู่ด้านบนของ XML แบบไบนารีสำหรับการใช้งานโดยตรงโดยแอ็พพลิเคชัน XML การบีบอัดและการบีบอัดชิ้นส่วนของเอกสาร XML ช่วยในการประมวลผลแบบทวีคูณ บทนี้อนุมานว่าคุณมีความคุ้นเคยกับ XML Parser for Java รูปแบบสตอเรจ XML แบบไบนารีตัวเลือกการจัดเก็บ XMLType มีให้เพื่อเปิดใช้งานการจัดเก็บเอกสาร XML ในรูปแบบไบนารีใหม่ ตัวเลือกพื้นที่เก็บข้อมูลใหม่นี้นอกเหนือจาก CLOB และอ็อพชันการเก็บข้อมูลเชิงวัตถุ สามารถสร้างตารางและคอลัมน์ XMLType โดยใช้ตัวเลือก XML storage binary ใหม่ ข้อมูล XML ในรูปแบบไบนารีสามารถเข้าถึงและจัดการโดยผู้ปฏิบัติงานและฟังก์ชัน SQL ที่มีอยู่ทั้งหมดและ PLSQL APIs ที่ทำงานบน XMLType ไบนารีเอ็กเอ็มแอลคือการเข้ารหัสข้อมูล XML ที่มีรูปแบบ XML ที่มีขนาดกะทัดรัด แต่สามารถใช้ได้กับข้อมูล XML ที่ไม่ได้ขึ้นอยู่กับสคีมา XML นอกจากนี้คุณยังสามารถใช้ XML ไบนารีสำหรับข้อมูล XML ซึ่งอยู่นอกฐานข้อมูล (เช่นในแอ็พพลิเคชันฝั่งไคลเอ็นต์เป็นต้น) ไบนารี XML ช่วยให้สามารถเข้ารหัสและถอดรหัสเอกสาร XML จากข้อความเป็นไบนารีและไบนารีไปเป็นข้อความ XML ไบนารีคือการวิเคราะห์ XML ถาวรแบบโพสต์กับชนิดข้อมูลฐานข้อมูลพื้นเมือง ไบนารีเอ็กเอ็มแอลมีระบบจัดเก็บข้อมูลฐานข้อมูลที่มีประสิทธิภาพมากขึ้นการอัพเดตการจัดทำดัชนีประสิทธิภาพการสืบค้นข้อมูลและการแยกส่วนออกจากที่จัดเก็บข้อมูลที่ไม่มีโครงสร้าง สามารถจัดเก็บข้อมูลและข้อมูลเมตารวมกันหรือแยกกันได้ ตัวประมวลผล XML ไบนารีโปรเซสเซอร์ XML แบบไบนารีเป็นคำนามที่อธิบายถึงส่วนประกอบที่ประมวลผลและแปลงรูปแบบไบนารี XML เป็นข้อความและข้อความ XML เป็นรูปแบบไบนารี XML นอกจากนี้ยังสามารถจัดเตรียมแคชสำหรับจัดเก็บสกีมาได้ คลาสพื้นฐานสำหรับตัวประมวลผล XML ไบนารีคือ BinXMLProcessor ตัวประมวลผล XML ไบนารีสามารถสร้างหรือรับคำขอโปรโตคอลเครือข่ายได้ โมเดลสำหรับการใช้ไบนารีเอ็กเอ็มแอลมีหลายรูปแบบสำหรับการใช้ XML ไบนารีในแอ็พพลิเคชัน อันดับแรกนี่คืออภิธานศัพท์ของคำศัพท์: อภิธานศัพท์สำหรับ XML ไบนารีนี่เป็นคำศัพท์สำหรับการใช้ XML แบบไบนารี: doc-id เอกสาร XML ที่เข้ารหัสแต่ละไฟล์จะถูกระบุด้วย doc-id ที่ไม่ซ้ำกัน เป็นรหัสผู้ใช้สากล (ไบต์) 16 ไบต์ (GUID) หรือไบต์แบบทึบแสงเช่น URL ตารางโทเค็น เมื่อเอกสาร XML แบบข้อความไม่มีสคีมาที่เชื่อมโยงอยู่ตารางโทเค็น (หรือสัญลักษณ์) จะใช้เพื่อลดพื้นที่สำหรับรายการซ้ำ รหัสคำศัพท์ สามารถเป็น schema-id หรือ namespace URI identification สำหรับตาราง token สคี-ID ตัวระบุเลขฐานสองแบบทึบแสงที่ไม่ซ้ำกันสำหรับสคีมาถูกกำหนดขอบเขตไปยังตัวประมวลผล XML แบบไบนารี schema-id มีลักษณะเฉพาะสำหรับโปรเซสเซอร์ XML แบบไบนารีและสามารถระบุได้เฉพาะภายในขอบเขตของตัวประมวลผล XML ไบนารีเท่านั้น คีมา - id ยังคงเป็นค่าคงที่แม้ว่าจะมีการพัฒนาคีมาก็ตาม schema-id แสดงถึงชุดเอกสารสคีมาทั้งหมดรวมถึงสกีมาที่นำเข้าและรวมไว้ รุ่นสกีมา สคีมาที่มีคำอธิบายประกอบทุกฉบับมีหมายเลขเวอร์ชันที่เชื่อมโยงอยู่ หมายเลขเวอร์ชันถูกระบุเป็นส่วนหนึ่งของหมายเหตุระดับระบบ จะเพิ่มขึ้นโดยโปรเซสเซอร์ XML แบบไบนารีเมื่อมีการพัฒนาคีมา (นั่นคือรุ่นใหม่ของสคีมาเดียวกันจะได้รับการลงทะเบียนกับตัวประมวลผล XML ไบนารี) ความถูกต้องบางส่วน การเข้ารหัสกระแส XML แบบไบนารีโดยใช้ schema หมายถึงความถูกต้องบางส่วนของส่วนที่เกี่ยวกับสคีมา ความถูกต้องบางส่วนหมายถึงการตรวจสอบความถูกต้องของคีย์ keyrefs IDs หรือ IDREFs ที่ไม่ซ้ำกัน แบบสแตนด์อโลนนี่คือสถานการณ์การใช้งานที่ง่ายที่สุดสำหรับ XML ไบนารี มีตัวประมวลผล XML ไบนารีเดียว พื้นที่เก็บข้อมูลเฉพาะที่มีอยู่คือแคชคำศัพท์ในหน่วยความจำภายในที่ไม่คงที่และมีให้บริการสำหรับชีวิตของตัวประมวลผล XML แบบไบนารีเท่านั้น สกีมาทั้งหมดต้องได้รับการลงทะเบียนไว้ล่วงหน้ากับโปรเซสเซอร์ XML ไบนารีก่อนการเข้ารหัสหรือสามารถลงทะเบียนได้โดยอัตโนมัติเมื่อตัวประมวลผล XML เห็นแท็ก xsi: SchemaLocation สำหรับการถอดรหัสคีมามีอยู่แล้วในแคชคำศัพท์ หากการถอดรหัสเกิดขึ้นในโปรเซสเซอร์ XML แบบไบนารีอื่นดูรูปแบบบริการเว็บต่างๆที่อธิบายไว้ที่นี่ Client-Server Model ในสถานการณ์สมมตินี้ตัวประมวลผล XML ไบนารีถูกเชื่อมต่อกับฐานข้อมูลโดยใช้ JDBC สันนิษฐานว่า schema ถูกลงทะเบียนกับฐานข้อมูลก่อนการเข้ารหัส นี่คือตัวอย่างของวิธีการที่จะบรรลุเป้าหมายดังกล่าว: ถ้าไม่มีการระบุการเชื่อมต่อแยกต่างหากสำหรับข้อมูล (ใช้ associateDataConnection ()) จะถือว่าข้อมูลและข้อมูลเมตาทั้งหมดถูกเก็บและเรียกค้นโดยใช้การเชื่อมต่อเดียวสำหรับการเข้ารหัสและถอดรหัส รูปแบบบริการเว็บพร้อมพื้นที่เก็บข้อมูลในสถานการณ์สมมตินี้มีไคลเอ็นต์หลายเครื่องซึ่งแต่ละตัวประมวลผลเป็นแบบไบนารีเอ็กเอ็มแอล ลูกค้าคนหนึ่งทำการเข้ารหัสและไคลเอ็นต์อื่นจะทำการถอดรหัส มีพื้นที่เก็บข้อมูลทั่วไป (ซึ่งไม่จำเป็นต้องเป็นฐานข้อมูล) ที่เชื่อมต่อกับลูกค้าทั้งหมดเพื่อเก็บข้อมูลเมตา อาจเป็นระบบไฟล์หรือพื้นที่เก็บข้อมูลอื่น ๆ ตัวประมวลผล XML แบบไบนารีตัวแรกช่วยให้มั่นใจว่า schema ถูกลงทะเบียนกับที่เก็บข้อมูลก่อนที่จะทำการเข้ารหัสหรือ schema อาจถูกลงทะเบียนโดยอัตโนมัติโดยใช้ xsi: schemaLocation tag ในขณะที่ทำการเข้ารหัส ตัวประมวลผล XML แบบไบนารีที่สองถูกใช้สำหรับการถอดรหัสไม่ทราบตำแหน่งของสคีมาและเรียกใช้สกีมาจากพื้นที่เก็บข้อมูล ถ้าตัวประมวลผล XML แบบไบนารีตัวแรกที่ลงทะเบียนสคีมาและตัวประมวลผล XML แบบไบนารีที่สองจะรีจิสเตอร์สคีมาเดียวกันในที่เก็บโปรแกรมประมวลผล XML แบบไบนารีไม่ได้รวบรวมสคีมา แต่จะคืนค่ารหัสคำศัพท์ของสคีมาที่รวบรวมอยู่ในแคชคำศัพท์ท้องถิ่น BinXMLProcessor ไม่ใช่ด้ายปลอดภัยดังนั้นเธรดหรือไคลเอนต์หลายแห่งที่เข้าถึงพื้นที่เก็บข้อมูลจำเป็นต้องใช้ชุดความปลอดภัยของเธรดของตนเอง รูปแบบบริการเว็บโดยไม่มีที่เก็บในสถานการณ์สมมตินี้มีหลายไคลเอ็นต์แต่ละตัวเรียกใช้โปรเซสเซอร์ XML แบบไบนารี การเข้ารหัสและถอดรหัสสามารถเกิดขึ้นได้กับลูกค้ารายอื่น ไม่มีที่เก็บ metadata ทั่วไป ตัวเข้ารหัสมีเพื่อให้มั่นใจว่าข้อมูลไบนารีที่ส่งผ่านไปยังไคลเอ็นต์ถัดไปจะไม่ขึ้นกับสคีมา: นั่นคือมีนิยามโทเค็นแบบอินไลน์ นี้สามารถทำได้โดยการตั้งค่า schemaAware false และ inlineTokenDefs true ใช้วิธี setProperty () ในระหว่างการเข้ารหัส ในขณะที่ถอดรหัสไม่มี schema ที่ต้องการ ส่วนของไบนารีเอ็กเอ็มแอลสำหรับ Java ฟังก์ชันไบนารี XML ของ Java มีสามส่วนดังนี้การเข้ารหัสแบบไบนารี XML - ตัวเข้ารหัส XML ไบนารีแปลงข้อมูล XML 1.0 เป็นไบนารีเอ็กเอ็มแอล การถอดรหัส XML แบบไบนารี - ตัวถอดรหัส XML แบบไบนารีแปลง XML ไบนารีเป็น XML อินพุท การจัดการคำศัพท์แบบไบนารี XML ซึ่งรวมถึงการจัดการสคีมาและการจัดการโทเค็น การเข้ารหัส XML ไบนารีการเข้ารหัสถูกสร้างขึ้นจาก BinXMLStream ใช้เวลาในการป้อนข้อความ XML และส่งออก XML ไบนารีที่เข้ารหัสไปยัง BinXMLStream ซึ่งสร้างขึ้นจาก เครื่องเข้ารหัสจะอ่านข้อความ XML โดยใช้สตรีม SAX การเข้ารหัสของข้อความ XML จะขึ้นอยู่กับผลลัพธ์ของการแยกวิเคราะห์ XML ตั้งค่าสถานะ schemaAware ในตัวเข้ารหัสที่ระบุว่าการเข้ารหัสเป็น schema-aware หรือ schema-less หรือไม่ สำหรับการเข้ารหัสแบบคีแอลจีคอนโทรลเลอร์จะกำหนดว่าสกีมาที่มี URL สกีมาเฉพาะได้รับการลงทะเบียนไว้กับผู้จัดการคำศัพท์แล้วหรือไม่ สำหรับตัวเก็บข้อมูลที่ใช้หรือตัวประมวลผลฐานข้อมูลตัวเข้ารหัสจะสอบถามพื้นที่เก็บข้อมูลหรือฐานข้อมูลสำหรับสคีมาที่รวบรวมโดยขึ้นอยู่กับ URL ของสคีมา ถ้าสคีมามีอยู่ในฐานข้อมูลระบบจะดึงข้อมูลจากพื้นที่เก็บข้อมูลหรือฐานข้อมูลในรูปแบบไบนารี XML และลงทะเบียนกับผู้จัดการคำศัพท์ท้องถิ่น คำศัพท์คือสคีมา ตั้งค่าสถานะเพื่อระบุว่าผลลัพธ์การเข้ารหัสในสตรีม XML แบบไบนารีที่ไม่ขึ้นกับสคีมา ในกรณีนี้สตรีม XML ไบนารีที่เกิดขึ้นจะมีคำจำกัดความโทเค็นทั้งหมดในบรรทัดและไม่ขึ้นอยู่กับสคีมาหรือชุดโทเค็นภายนอก ถ้าการเข้ารหัสเป็นคีตาตระหนักตัวเข้ารหัสจะใช้ข้อมูลประเภทข้อมูลจากออบเจ็กต์สกีมาเพื่อการเข้ารหัสที่มีประสิทธิภาพมากขึ้นของสตรีม SAX มีประเภทข้อมูลการเข้ารหัสมาตรฐานเริ่มต้นที่เชื่อมโยงกับแต่ละชนิดของสคีมาในตัว การเข้ารหัสข้อมูล XML แบบไบนารีโดยใช้ schema หมายถึงความถูกต้องบางส่วนสำหรับ schema (สำหรับความถูกต้องบางส่วนไม่มีการตรวจสอบความถูกต้องของคีย์ที่ไม่ซ้ำกันหรือ keyref หรือ ID หรือ DREFs) ถ้าข้อมูลทราบว่าถูกต้องสมบูรณ์เกี่ยวกับสคีมาสตรีม XML ไบนารีที่เข้ารหัสจะเก็บข้อมูลนี้ไว้ คู่มือนักพัฒนาซอฟต์แวร์ Oracle XML DB สำหรับตารางข้อมูลการเข้ารหัสแบบไบนารีและการแม็พของ XML จากชนิดข้อมูล XML ของสคีมาหากไม่มี schema ที่เชื่อมโยงกับ XML ข้อความระบบจะสร้างรหัสโทเค็นจำนวนเต็มสำหรับรายการซ้ำในข้อความ XML การสร้างตารางโทเค็นของโทเค็นโทเค็นและนิยามโทเค็นเป็นเทคนิคการบีบอัดที่สำคัญ นิยามโทเค็นจะถูกเก็บเป็นตารางโทเค็นในแคชคำศัพท์ ถ้าคุณสมบัติสำหรับนิยามโทเค็นแบบอินไลน์ถูกตั้งค่าแล้วคำจำกัดความโทเค็นจะเป็นแบบอินไลน์ คุณสมบัติอื่นในตัวเข้ารหัสจะระบุข้อมูล PSVI (Post Schema Validated Infoset) เป็นส่วนหนึ่งของสตรีมไบนารี หากตั้งค่าเป็น true ข้อมูล PSVI สามารถเข้าถึงได้โดยใช้ API ส่วนขยาย XDK สำหรับ PSVI ใน DOM ถ้า psvi จริงแล้ว XML ใส่ถูกตรวจสอบอย่างสมบูรณ์เกี่ยวกับสคีมา ถ้า psvi เป็น false ข้อมูล PSVI จะไม่รวมอยู่ในไบนารีออก ค่าดีฟอลต์คือ false การถอดรหัส XML ไบนารีตัวถอดรหัส XML ไบนารีจะแปลงข้อมูลไบนารี XML เป็น XML ตัวถอดรหัสถูกสร้างขึ้นจาก BinXMLStream จะอ่านไบนารี XML จากสตรีมนี้และส่งออกเหตุการณ์ SAX หรือให้ฟีดข้อมูล InfosetReader แบบดึงเพื่ออ่าน XML ที่ถอดรหัส หากสกีมามีส่วนเกี่ยวข้องกับ BinXMLStream ตัวถอดรหัส XML แบบไบนารีเรียกค้นวัตถุสคีมาที่เกี่ยวข้องจากแคชคำศัพท์โดยใช้รหัสคำศัพท์ก่อนถอดรหัส ถ้าแบบแผนไม่พร้อมใช้งานในแคชคำศัพท์และข้อมูลการเชื่อมต่อไปยังเซิร์ฟเวอร์จะพร้อมใช้งานจากนั้นระบบจะเรียกใช้คีมาจากเซิร์ฟเวอร์ หากไม่มีสคีมาเกี่ยวข้องกับ BinXMLStream จากนั้นนิยามโทเค็นอาจเป็นอินไลน์ใน BinXMLStream หรือเก็บไว้ในชุดโทเค็น หากโทเค็นของเนมสเปซที่สอดคล้องกันไม่ได้ถูกจัดเก็บไว้ในแคชคำศัพท์ท้องถิ่นจะมีการเรียกใช้ชุดโทเค็นจากพื้นที่เก็บข้อมูล การจัดการคำศัพท์ XML แบบไบนารีโปรเซสเซอร์ XML แบบไบนารีมีหลายประเภทขึ้นอยู่กับตำแหน่งของเมตาดาต้า (schema หรือ token sets) - ตัวประมวลผล XML แบบไบนารีในตัวหรือตัวประมวลผล XML ไบนารีที่เก็บข้อมูล การจัดการ Schema สำหรับการคงอยู่ของข้อมูลเมตาขอแนะนำให้คุณใช้ตัวประมวลผล DB Binary XML ในกรณีนี้ schemas และ token sets จะถูกลงทะเบียนกับฐานข้อมูล ตัวจัดการคำศัพท์จะดึงสคีมาหรือชุดโทเค็นจากฐานข้อมูลและแคชไว้ในแคชคำศัพท์ท้องถิ่นเพื่อใช้ในการเข้ารหัสและถอดรหัส ถ้าคุณต้องการใช้พื้นที่เก็บข้อมูลข้อมูลเมตาแบบถาวรที่ไม่ใช่ฐานข้อมูลคุณสามารถเชื่อมต่อที่เก็บข้อมูลเมตาของคุณเองได้ คุณต้องใช้อินเทอร์เฟซสำหรับการสื่อสารกับพื้นที่เก็บข้อมูล BinXMLMetadataProvider Schema Register Register schema ภายในเครื่องด้วยโปรเซสเซอร์ XML ไบนารีท้องถิ่น ตัวประมวลผล XML แบบไบนารีภายในประกอบด้วยตัวจัดการคำศัพท์ที่เก็บรักษาสกีมาทั้งหมดที่ผู้ใช้ส่งมาตลอดช่วงเวลาที่มีอยู่ ตัวจัดการคำศัพท์ที่เกี่ยวข้องกับโปรเซสเซอร์ XML แบบไบนารีภายในไม่ได้มีไว้สำหรับการคงอยู่ของสคีมา ถ้าคุณลงทะเบียนสคีมาเดียวกัน (สคีมาเดียวกันและเนมสเปซเป้าหมายเดียวกัน) สคีมาจะไม่ถูกแยกวิเคราะห์และจะมีการส่งคืนรหัสคำศัพท์ที่มีอยู่ หากมีการลงทะเบียนสกีมาใหม่ที่มีเนมสเปซเป้าหมายเดียวกันและตำแหน่งสคีมาอื่น ๆ การลงทะเบียนจะมีการเพิ่มคำจำกัดความของสคีมาที่มีอยู่แล้วด้วยคำจำกัดความของสคีมาใหม่หรือทำให้เกิดข้อผิดพลาดเกี่ยวกับข้อขัดแย้ง การระบุ Schema แต่ละ schema จะระบุด้วย id คำศัพท์ รหัสคำศัพท์อยู่ในขอบเขตของโปรเซสเซอร์และมีเอกลักษณ์เฉพาะภายในโปรเซสเซอร์ ต้องใช้เอกสารใด ๆ ที่ตรวจสอบความถูกต้องกับสคีมาเพื่อตรวจสอบความถูกต้องกับสคีมาเวอร์ชันล่าสุด หมายเหตุย่อ Schema หมายเหตุไบนารี XML สามารถปรากฏเฉพาะภายในองค์ประกอบ ltxsd: appInfogt ในสกีมา มีคำอธิบายประกอบแบบแผนสองแบบ - ระดับผู้ใช้และระดับระบบ ผู้จัดการคำศัพท์แปลความหมายเหล่านี้ในขณะที่ลงทะเบียนสคีมา หมายเหตุประเภทอื่น ๆ ทั้งหมด (เช่นคำอธิบายประกอบเกี่ยวกับฐานข้อมูลจะถูกละเว้น) คำอธิบายประกอบระดับผู้ใช้เหล่านี้ถูกระบุโดยผู้ใช้ก่อนลงทะเบียน encodingType - สามารถใช้ได้ภายใน xsd: element xsd: attribute หรือ xsd: simpleType elements ระบุประเภทข้อมูลที่จะใช้สำหรับการเข้ารหัสค่าโหนดขององค์ประกอบหรือแอตทริบิวต์ สำหรับสายอักขระมีเพียงการสนับสนุนการเข้ารหัส UTF8 ในรุ่นนี้เท่านั้น คำอธิบายประกอบระดับระบบผู้จัดการคำศัพท์เพิ่มข้อมูลเหล่านี้ในขณะที่ลงทะเบียนคุณจะไม่สามารถเขียนทับได้ ชุดโทเค็นการจัดการโทเค็นสามารถเรียกจากฐานข้อมูลหรือพื้นที่เก็บข้อมูลเมตาดาต้าแคชในตัวจัดการคำศัพท์ท้องถิ่นและใช้สำหรับการถอดรหัส ในขณะที่การเข้ารหัสชุดโทเค็นสามารถถูกผลักดันไปยังที่เก็บสำหรับการติดตา คำจำกัดความโทเค็นสามารถรวมเป็นส่วนหนึ่งของสตรีม XML แบบไบนารีได้ด้วยการตั้งค่าสถานะในตัวเข้ารหัส การใช้ Java Binary XML Package คลาส BinXMLStream แสดงถึงสตรีม XML แบบไบนารี ที่เก็บข้อมูลที่กำหนดไว้สำหรับ XML Stream แบบไบนารีคือ InputStream - สตรีมสำหรับการอ่าน OutputStream - สตรีมสำหรับการเขียน URL - สตรีมสำหรับการอ่าน ไฟล์สตรีมสำหรับการอ่านและเขียน BLOB - สตรีมสำหรับการอ่านและเขียน อาร์เรย์ไบต์ - สตรีมสำหรับการอ่านและเขียน ในหน่วยความจำ - สตรีมเพื่อการอ่านและเขียน วัตถุ BinXMLStream ระบุประเภทของที่เก็บข้อมูลระหว่างการสร้าง สามารถสร้างวัตถุ BinXMLStream จากโรงงาน BinXMLProcessor โรงงานนี้สามารถเริ่มต้นได้โดยใช้การเชื่อมต่อ JDBC (สำหรับการเข้าถึงข้อมูลเมตาแบบระยะไกล) พูลเชื่อมต่อ URL หรือ PageManagerPool (สำหรับการเก็บข้อมูลในหน่วยความจำที่ขี้เกียจ) BinXMLEncoder และ BinXMLDecoder สามารถสร้างขึ้นจาก BinXMLStream สำหรับการเข้ารหัสหรือถอดรหัส 1. นี่คือตัวอย่างของการสร้างโปรเซสเซอร์โดยไม่มีที่เก็บการลงทะเบียนสคีมาการเข้ารหัสเหตุการณ์ XML SAX ลงในรูปแบบไบนารีที่รู้จัก schema-aware และการจัดเก็บในไฟล์: นอกเหนือจากการรับ ContentHandler คุณสามารถเรียกใช้ตัวจัดการอื่น ๆ เช่น: ใช้ hdlr ในแอพพลิเคชันที่สร้างเหตุการณ์ SAX 2. นี่คือตัวอย่างของการสร้างโปรเซสเซอร์ที่มีที่เก็บฐานข้อมูลการถอดรหัสไบนารีของสคีมาและอ่าน XML ที่ถอดรหัสโดยใช้ API แบบดึง มีการดึงสคีมาจากที่เก็บฐานข้อมูลสำหรับการถอดรหัส ใช้ xmlreader เพื่ออ่าน XML ในรูปแบบการดึงจากตัวถอดรหัส ตัวเข้ารหัส XML แบบไบนารีตัวเข้ารหัสใช้อินพุต XML ซึ่งมีการแยกวิเคราะห์และอ่านโดยใช้เหตุการณ์ SAX และแสดง XML ไบนารี Schema-less Option คุณสามารถระบุ schema-aware หรือตัวเลือก schema-less ก่อนการเข้ารหัส ค่าเริ่มต้นคือการเข้ารหัสที่น้อยกว่า schema หากมีการตั้งค่าตัวเลือกการรู้สคีมาการเข้ารหัสจะทำตาม schema ที่ระบุในเอกสารอินสแตนซ์ ต้องใช้สคีมาที่มีคำอธิบายประกอบซึ่งใช้สำหรับการเข้ารหัสในช่วงเวลาถอดรหัส ถ้ามีการระบุตัวเลือก schema-less การเข้ารหัสจะไม่ขึ้นกับสคีมา แต่โทเค็นจะเป็นแบบอินไลน์ตามค่าเริ่มต้น หากต้องการแทนที่ค่าเริ่มต้นให้ตั้ง Inline-token false ตัวเลือก Inline-token คุณสามารถตั้งค่าตัวเลือกเพื่อสร้าง XML Stream แบบไบนารีโดยใช้นิยามโทเค็นแบบอินไลน์ก่อนการเข้ารหัส ถ้าปิดใช้งานอินไลน์มากกว่าที่คุณต้องแน่ใจว่าโปรเซสเซอร์สำหรับตัวเข้ารหัสหรือตัวถอดรหัสกำลังใช้ที่เก็บข้อมูลเมตาเดียวกัน ธงอินไลน์โทเค็นถูกละเว้นถ้าตัวเลือกการรู้สคีมาเป็นจริง นิยามโทเค็นเป็นแบบอินไลน์ รูปที่ 5-1 ตัวเข้ารหัส XML แบบไบนารีตัวถอดรหัสไบนารี XML ตัวถอดรหัส XML ไบนารีใช้กระแสข้อมูลไบนารี XML เป็นอินพุตและสร้างเหตุการณ์ SAX เป็นเอาต์พุตหรือให้อินเตอร์เฟซแบบดึงเพื่ออ่าน XML ที่ถอดรหัส ในกรณีของไบนารี XML สคีมาจะทราบว่าตัวถอดรหัส XML แบบไบนารีโต้ตอบกับผู้จัดการคำศัพท์เพื่อดึงข้อมูลคีมา ถ้าตัวจัดการคำศัพท์ไม่มีเค้าร่างที่ต้องการและโปรเซสเซอร์เป็นชนิดไบนารี่ XML DB ที่มีการเชื่อมต่อ JDBC ที่ถูกต้องจากนั้นรีโมตคีมาจะถูกเรียกจากฐานข้อมูลหรือพื้นที่เก็บข้อมูลเมตาดาต้าตามรหัสคำศัพท์ในสตรีม XML แบบไบนารีเพื่อ ถอดรหัส ในทำนองเดียวกันชุดของนิยามโทเค็นสามารถเรียกจากฐานข้อมูลหรือพื้นที่เก็บข้อมูล metadata รูปที่ 5-2 การลงทะเบียน Schema ของตัวถอดรหัส XML แบบไบนารีนี่คือขั้นตอนของกระบวนการนี้: ถ้าคำศัพท์เป็นสคีมา XML จะใช้ข้อความ XML schema เป็นอินพุท เครื่องอธิบายย่อ schema อธิบายข้อความสคีมาด้วยหมายเหตุระดับระบบ สคีมาอาจมีคำอธิบายประกอบระดับผู้ใช้อยู่แล้ว สคีมาที่อธิบายไว้จะได้รับการประมวลผลโดย Schema Builder เพื่อสร้างออบเจกต์ XML schema วัตถุสกีมา XML นี้ถูกเก็บไว้ในแคชคำศัพท์ แคชคำศัพท์กำหนดรหัสคำศัพท์ที่ไม่ซ้ำกันสำหรับแต่ละสคีมา XML ซึ่งจะส่งกลับเป็นเอาต์พุต การแสดง DOM ที่มีคำอธิบายประกอบของ schema ถูกส่งไปยังตัวเข้ารหัส XML แบบไบนารี การแก้ปัญหา xsi: schemaLocation ในระหว่างการเข้ารหัสถ้า schemaAware เป็นจริงและคุณสมบัติ ImplcitSchemaRegistration เป็นความจริง จากนั้นแท็ก xsi: schemaLocation แรกที่มีอยู่ในองค์ประกอบรากของเอกสาร XML อินสแตนซ์จะลงทะเบียนสคีมาในตัวจัดการคำศัพท์ท้องถิ่นโดยอัตโนมัติ แท็ก schemaLocation ทั้งหมดไม่ได้ลงทะเบียนไว้อย่างชัดเจน ถ้าโปรเซสเซอร์เป็นฐานข้อมูลแล้ว schema จะถูกลงทะเบียนในฐานข้อมูลเช่นเดียวกับตัวประมวลผลที่เก็บข้อมูลเมตาดาต้า ถ้าการเข้ารหัสถูกตั้งค่าเป็น schemaAware เป็นเท็จหรือ ImplcitSchemaRegistration เป็นเท็จ แล้ว xsi: schemaLocation จะถูกละเว้นโดยการเข้ารหัส ไบนารี XML DB วัตถุ DBBinXMLMetadataProvider ถูกสร้างขึ้นโดยใช้การเชื่อมต่อ JDBC เฉพาะหรือพูลเชื่อมต่อเพื่อเข้าถึงข้อมูลคำศัพท์เช่นสคีมาและชุดโทเค็น โปรเซสเซอร์ยังเชื่อมโยงกับการเชื่อมต่อข้อมูลอย่างน้อยหนึ่งรายการเพื่อเข้าถึงข้อมูล XML ตัวประมวลผล XML ไบนารีสามารถสื่อสารกับฐานข้อมูลสำหรับการดำเนินการ XML แบบไบนารีประเภทต่างๆที่เกี่ยวข้องกับการจัดเก็บและการเรียกใช้ XML schema ไบนารีชุดโทเค็นและ XML แบบไบนารีลำธาร การสื่อสารฐานข้อมูลมีส่วนเกี่ยวข้องในรูปแบบต่างๆดังต่อไปนี้การดึงข้อมูล XML Schema แบบไบนารีที่รวบรวมโดยใช้รหัสคำศัพท์หรือ URL ของสคีมาในการดึงข้อมูลสคีมา XML แบบไบนารีที่รวบรวมไว้สำหรับการเข้ารหัสฐานข้อมูลจะถูกสอบถามตาม URL ของสคีมา สำหรับการถอดรหัสแบบไบนารี XML ดึงข้อมูลจากฐานข้อมูลตามรหัสคำศัพท์ จัดเก็บสคีมา XML แบบไบนารีที่ไม่ได้ใช้โดยใช้ URL ของสคีมาและเรียกค้นรหัสคำศัพท์ เมื่อพบ xsi: schemaLocation tag ระหว่างการเข้ารหัส schema จะถูกลงทะเบียนในฐานข้อมูลเพื่อเก็บถาวรในฐานข้อมูล id คำศัพท์ที่เชื่อมโยงกับสคีมารวมทั้งรูปแบบไบนารีของสคีมาที่รวบรวมไว้จะถูกดึงกลับมาจากฐานข้อมูลออบเจ็กต์สกีมาที่คอมไพล์ถูกสร้างขึ้นและจัดเก็บไว้ในแคชภายในโดยใช้ id คำศัพท์ที่ส่งคืนจากฐานข้อมูล กำลังเรียกข้อมูลไบนารีโทเค็นโดยใช้ URL namespace หากมีการถอดรหัสไบนารีที่มีการเชื่อมต่อกับโทเค็นด์ตารางสำหรับการถอดรหัสข้อมูลเหล่านี้จะดึงมาจากฐานข้อมูลโดยใช้การเชื่อมต่อข้อมูลเมตา การจัดเก็บไบนารีโทเค็นที่ตั้งไว้โดยใช้ namespace URL ถ้าข้อความ XML ถูกเข้ารหัสโดยไม่ใช้สคีมาจะส่งผลให้เกิดชุดโทเค็นโทเค็นของนิยามโทเค็น ตารางโทเค็นเหล่านี้สามารถจัดเก็บได้อย่างต่อเนื่องในฐานข้อมูล การเชื่อมต่อข้อมูลเมตาจะใช้สำหรับการโอนชุดโทเค็นไปยังฐานข้อมูล กระแสข้อมูลไบนารี XML ที่มีอ็อพชันการจัดเก็บข้อมูลระยะไกลเป็นหน้าที่ในการสร้างตารางที่มีคอลัมน์ XMLType พร้อมด้วย XML ไบนารีเพื่อจัดเก็บผลการเข้ารหัสและดึงข้อมูลไบนารี XML สำหรับการถอดรหัส การสื่อสารกับฐานข้อมูลสามารถทำได้ด้วย SQLNet และ JDBC เรียกวัตถุ XMLType จากชุดผลลัพธ์ผลลัพธ์ของแบบสอบถาม JDBC BinXMLStream สำหรับการอ่านข้อมูลไบนารีหรือสำหรับเขียนข้อมูลไบนารีสามารถสร้างได้จาก XMLType object คลาส XMLType ต้องได้รับการขยายเพื่อสนับสนุนการอ่านและการเขียนข้อมูล XML แบบไบนารี การจัดเก็บข้อมูลเมตาแบบถาวรตัวจัดการคำศัพท์ท้องถิ่นและแคชเก็บข้อมูลเมตาดาต้าไว้ในหน่วยความจำสำหรับอายุการใช้งาน BinXMLProcessor เสียบที่เก็บข้อมูลส่วนหลังของคุณเองสำหรับข้อมูลเมตาโดยใช้อินเตอร์เฟซ BinXMLMetadataProvider และเสียบเข้ากับ BinXMLProcessor ปัจจุบันมีผู้ให้บริการข้อมูลเมตาเพียงรายเดียวสำหรับโปรเซสเซอร์แต่ละตัวเท่านั้น คุณต้องรหัส FileBinXMLMetadataProvider ที่ใช้อินเตอร์เฟซ BinXMLMetadataProvider เครื่องเข้ารหัสและเครื่องถอดรหัสใช้ APIs เหล่านี้เพื่อเข้าถึงข้อมูลเมตาจากที่จัดเก็บข้อมูล Back-End ที่ยังคงมีอยู่ ตั้งค่าข้อมูลการกำหนดค่าสำหรับที่จัดเก็บถาวร: ตัวอย่างเช่นไดเรกทอรีรากในกรณีของระบบไฟล์ใน Class FileBinXMLMetadataProvider รีสตาร์ท FileBinXMLMetadataProvider และเสียบเข้ากับ BinXMLProcessor การเขียนสคริปต์ในหน้านี้ช่วยเพิ่มการนำทางเนื้อหา แต่ไม่เปลี่ยนแปลงเนื้อหาในลักษณะใด ๆ

No comments:

Post a Comment