WEBVTT 00:00:00.039 --> 00:00:02.065 ในวิดีโอก่อนนหน้านี้, เราได้เรียนรู้พื้นฐานของ XML 00:00:02.065 --> 00:00:04.036 ในวิดีโอนี้, เรา 00:00:04.036 --> 00:00:06.003 จะเรียนรู้เกี่ยวกับหลักการพื้นฐานของเขียนเอกสาร, 00:00:06.003 --> 00:00:11.023 ยังเป็นที่รู้จัก DTDs และยัง ID และ ID แอตทริบิวต์โทษ 00:00:11.023 --> 00:00:13.028 เราจะเรียนรู้รูปแบบของ XML 00:00:13.028 --> 00:00:14.072 ว่า XML มีหลัก 00:00:14.072 --> 00:00:16.077 ที่ต้องปฏิบัติตามอย่างไร ,ในหนึ่ง 00:00:16.077 --> 00:00:18.073 เอกสาร, แท็กเปิดกับแท็กปิด 00:00:18.073 --> 00:00:20.082 ที่ต้องเหมือนกัน, และคุณลักษณะ 00:00:20.082 --> 00:00:23.004 ภายในจะต้องไม่ซ้ำกัน 00:00:23.004 --> 00:00:26.048 ตอนนี้เรากำลังจะได้เรียนรู้เกี่ยวกับสิ่งที่เรียกว่า XML ที่ถูกต้อง 00:00:26.048 --> 00:00:27.096 XML ที่ถูกต้องมีการปฏิบัติตาม 00:00:27.096 --> 00:00:30.019 ความต้องการโครงสร้างพื้นฐานเดียวกัน 00:00:30.019 --> 00:00:32.000 XML เป็นรูปแบบที่ดี แต่มัน 00:00:32.000 --> 00:00:35.026 นอกจากนี้ยังเป็นไปตามเนื้อหารายละเอียดที่เฉพาะเจาะจง 00:00:35.026 --> 00:00:38.054 และเรากำลังจะไปเรียนรู้ภาษาที่สองสำหรับคุณสมบัติเหล่านั้น 00:00:38.054 --> 00:00:39.099 หนึ่งในนั้นคือประเภทเอกสาร 00:00:39.099 --> 00:00:41.092 อธิบายหรือ DTDs และ 00:00:41.092 --> 00:00:44.084 อื่น ๆ ภาษาที่มีประสิทธิภาพมากขึ้นเป็นเค้าร่าง XML 00:00:44.084 --> 00:00:46.036 ข้อมูลจำเพาะในรูปแบบ XML 00:00:46.036 --> 00:00:50.075 คีมาเป็นที่รู้จักกัน XSDs สำหรับคำอธิบายของ XML Schema 00:00:50.075 --> 00:00:52.003 ดังนั้นโปรดอย่าลืมว่านี่เป็นวิธีที่ 00:00:52.003 --> 00:00:54.039 สิ่งที่ทำงานกับเอกสาร XML ที่ดีขึ้น 00:00:54.039 --> 00:00:55.073 เราจะส่งเอกสาร 00:00:55.073 --> 00:00:57.014 แยกวิเคราะห์และตัวแยกวิเคราะห์ที่จะ 00:00:57.014 --> 00:00:58.038 ทั้งสองกลับมาว่าเอกสารที่ 00:00:58.038 --> 00:01:02.001 ก็ไม่ได้ดีขึ้นหรือว่ามันจะกลับ XML แจง 00:01:02.001 --> 00:01:03.099 ตอนนี้ขอพิจารณาสิ่งที่เกิดขึ้นกับ XML ที่ถูกต้อง 00:01:03.099 --> 00:01:05.092 ตอนนี้เราใช้การตรวจสอบ 00:01:05.092 --> 00:01:07.011 XML parser และเรามี 00:01:07.011 --> 00:01:08.032 การป้อนข้อมูลเพิ่มเติมเพื่อ 00:01:08.032 --> 00:01:10.005 กระบวนการซึ่งเป็น 00:01:10.005 --> 00:01:12.096 สเปคทั้ง DTD หรือ XSD 00:01:12.096 --> 00:01:15.049 เพื่อที่ว่ายังเลี้ยงตัวแยกวิเคราะห์พร้อมกับเอกสาร 00:01:15.049 --> 00:01:17.007 ตัวแยกวิเคราะห์สามารถอีกครั้ง 00:01:17.007 --> 00:01:18.052 บอกว่าเอกสารมี 00:01:18.052 --> 00:01:22.006 ไม่ได้เกิดขึ้นได้ดีถ้ามันไม่ได้ตอบสนองความต้องการโครงสร้างพื้นฐาน 00:01:22.006 --> 00:01:23.019 นอกจากนี้ยังสามารถพูดได้ว่า 00:01:23.019 --> 00:01:24.075 เอกสารไม่ถูกต้อง, ความหมาย 00:01:24.075 --> 00:01:26.039 โครงสร้างของเอกสารไม่ได้ 00:01:26.039 --> 00:01:28.006 ตรงกับคุณสมบัติเฉพาะเนื้อหา 00:01:28.006 --> 00:01:30.033 หากทุกอย่างเป็นสิ่งที่ดีนั้น 00:01:30.033 --> 00:01:33.025 อีกครั้งหนึ่ง "แยกวิเคราะห์ XML" ถูกส่งกลับ 00:01:33.025 --> 00:01:36.048 ตอนนี้เรามาพูดคุยเกี่ยวกับอธิบายเอกสารประเภทหรือ DTDs 00:01:36.048 --> 00:01:37.041 เราเห็นใน DTD 00:01:37.041 --> 00:01:38.046 ที่มุมล่างซ้ายของ 00:01:38.046 --> 00:01:39.057 วิดีโอ แต่เราจะไม่ดู 00:01:39.057 --> 00:01:40.091 ที่ในรายละเอียดใด ๆ เพราะเราจะ 00:01:40.091 --> 00:01:44.008 จะทำสาธิตการทำงานของ DTDs เล็ก ๆ น้อย ๆ ในภายหลัง 00:01:44.008 --> 00:01:45.004 DTD เป็นภาษาที่ 00:01:45.004 --> 00:01:47.078 ว่าเป็นชนิดเช่นไวยากรณ์และ 00:01:47.078 --> 00:01:49.004 สิ่งที่คุณสามารถระบุในภาษาที่เป็น 00:01:49.004 --> 00:01:51.025 เอกสารโดยเฉพาะอย่างยิ่งสิ่งที่องค์ประกอบ 00:01:51.025 --> 00:01:52.086 คุณต้องการเอกสารที่จะมี, 00:01:52.086 --> 00:01:54.058 แท็กขององค์ประกอบที่ 00:01:54.058 --> 00:01:55.008 แอตทริบิวต์ที่สามารถอยู่ใน 00:01:55.008 --> 00:01:59.006 องค์ประกอบวิธีการที่แตกต่างกันขององค์ประกอบที่สามารถซ้อนกัน 00:01:59.006 --> 00:02:00.008 บางครั้งการสั่งซื้อของ 00:02:00.008 --> 00:02:01.094 องค์ประกอบอาจต้องการที่จะ 00:02:01.094 --> 00:02:06.017 ระบุจำนวนและบางครั้งของการเกิดขึ้นขององค์ประกอบที่แตกต่างกัน 00:02:06.017 --> 00:02:07.078 DTDs ยังอนุญาตให้ 00:02:07.078 --> 00:02:09.000 การแนะนำของชนิดพิเศษ 00:02:09.000 --> 00:02:11.091 คุณลักษณะที่เรียกว่า ID และ idrefs 00:02:11.091 --> 00:02:13.019 และมีประสิทธิภาพสิ่งเหล่านี้ช่วยให้คุณ 00:02:13.019 --> 00:02:15.007 ทำคือการระบุตัวชี้ภายใน 00:02:15.007 --> 00:02:19.003 เอกสารแม้ว่าเหล่านี้เป็นตัวชี้ untyped 00:02:19.003 --> 00:02:20.039 ก่อนที่จะย้ายไปสาธิต 00:02:20.039 --> 00:02:21.045 ขอพูดคุยเล็กน้อยเกี่ยวกับ 00:02:21.045 --> 00:02:22.098 บวกและเชิงลบเกี่ยวกับ 00:02:22.098 --> 00:02:24.035 เลือกใช้ DTD 00:02:24.035 --> 00:02:26.026 หรือ XSD และสำหรับข้อมูล XML หนึ่งของ 00:02:26.026 --> 00:02:27.055 หลังจากนั้น, ถ้าคุณ 00:02:27.055 --> 00:02:29.022 สร้างแอพลิเคชัน 00:02:29.022 --> 00:02:30.052 ข้อมูลในรูปแบบ XML คุณจะมี 00:02:30.052 --> 00:02:32.002 ที่จะตัดสินใจว่าคุณต้องการ 00:02:32.002 --> 00:02:33.069 XML เพื่อเพิ่งจะดีขึ้น 00:02:33.069 --> 00:02:34.094 หรือไม่ว่าคุณต้องการที่จะ 00:02:34.094 --> 00:02:37.000 มีรายละเอียดและต้องใช้ 00:02:37.000 --> 00:02:40.035 XML เพื่อสามารถใช้งานเพื่อตอบสนองข้อกำหนดเหล่านั้น 00:02:40.035 --> 00:02:41.081 ดังนั้นขอใส่ไม่กี่บวก 00:02:41.081 --> 00:02:44.043 ของการเลือกที่ใหม่กว่าต้อง DTD หรือ XSD 00:02:44.043 --> 00:02:46.058 ก่อนอื่น, 00:02:46.058 --> 00:02:47.065 พวกเขาก็คือเมื่อคุณเขียนของคุณ 00:02:47.065 --> 00:02:49.049 โปรแกรม, คุณสามารถสรุปได้ 00:02:49.049 --> 00:02:52.056 ว่าข้อมูลที่เป็นไปตามโครงสร้างที่เฉพาะเจาะจง 00:02:52.056 --> 00:02:54.048 ดังนั้นโปรแกรมสามารถสมมติ 00:02:54.048 --> 00:02:56.052 โครงสร้างและอื่น ๆ 00:02:56.052 --> 00:02:57.064 โปรแกรมตัวเองเป็นที่เรียบง่ายเพราะพวกเขาไม่ได้ 00:02:57.064 --> 00:03:00.069 จะต้องมีการทำมากของข้อผิดพลาดการตรวจสอบข้อมูล 00:03:00.069 --> 00:03:01.095 พวกเขาจะรู้ว่าก่อนที่ข้อมูล 00:03:01.095 --> 00:03:03.062 ถึงโปรแกรมที่จะได้รับ 00:03:03.062 --> 00:03:07.025 วิ่งผ่านตรวจสอบและมันไม่ตอบสนองโครงสร้างโดยเฉพาะอย่างยิ่ง 00:03:07.025 --> 00:03:08.084 ประการที่สองของทั้งหมดที่เราได้พูดคุยกัน 00:03:08.084 --> 00:03:10.098 ในบางเวลาที่ผ่านมาเกี่ยวกับ 00:03:10.098 --> 00:03:13.013 ภาษารูปแบบแผ่นซ้อน 00:03:13.013 --> 00:03:15.092 และภาษาสไตล์ชีตขยาย 00:03:15.092 --> 00:03:17.088 เหล่านี้เป็นภาษาที่ใช้ XML 00:03:17.088 --> 00:03:19.008 และพวกเขาเรียกใช้กฎระเบียบเกี่ยวกับมัน 00:03:19.008 --> 00:03:22.029 ในการประมวลผลลงในแบบฟอร์มที่แตกต่างกันมัก HTML 00:03:22.029 --> 00:03:24.017 เมื่อคุณเขียนกฎเหล่านั้นถ้า 00:03:24.017 --> 00:03:25.019 คุณทราบว่าข้อมูลที่ 00:03:25.019 --> 00:03:26.079 มีโครงสร้างบางแล้วเหล่านั้น 00:03:26.079 --> 00:03:28.044 กฎสามารถจะง่ายดังนั้นเช่น 00:03:28.044 --> 00:03:30.017 โปรแกรมพวกเขายังสามารถ 00:03:30.017 --> 00:03:33.047 ถือว่าโครงสร้างโดยเฉพาะและมันทำให้พวกเขาง่าย 00:03:33.047 --> 00:03:35.017 ตอนนี้การใช้งานสำหรับ DTDs อื่น 00:03:35.017 --> 00:03:36.081 หรือ XSDs คือเป็น 00:03:36.081 --> 00:03:39.014 ภาษาสเปคสำหรับการถ่ายทอด 00:03:39.014 --> 00:03:41.061 สิ่งที่ XML อาจจำเป็นต้องให้มีลักษณะเหมือน 00:03:41.061 --> 00:03:43.081 ดังนั้นเป็นตัวอย่างถ้าคุณ 00:03:43.081 --> 00:03:45.059 การดำเนินการแลกเปลี่ยนข้อมูลโดยใช้ 00:03:45.059 --> 00:03:47.011 XML อาจจะเป็น บริษัท 00:03:47.011 --> 00:03:48.097 จะได้รับใบสั่งซื้อใน 00:03:48.097 --> 00:03:50.024 XML บริษัท สามารถ 00:03:50.024 --> 00:03:51.042 จริงใช้ DTD เป็น 00:03:51.042 --> 00:03:53.015 ข้อกำหนดสำหรับสิ่งที่ 00:03:53.015 --> 00:03:54.059 XML จะต้องดู 00:03:54.059 --> 00:03:56.099 เช่นเมื่อมันมาถึง 00:03:56.099 --> 00:03:59.058 โปรแกรมก็จะทำงานกับมัน 00:03:59.058 --> 00:04:01.022 นอกจากนี้ยังมีเอกสารก็สามารถ 00:04:01.022 --> 00:04:02.043 จะเป็นประโยชน์ที่จะใช้อย่างใดอย่างหนึ่ง 00:04:02.043 --> 00:04:04.018 ข้อกำหนดเพียงเอกสาร 00:04:04.018 --> 00:04:06.042 สิ่งที่ข้อมูลที่ตัวเองดูเหมือนว่า 00:04:06.042 --> 00:04:08.008 โดยทั่วไปจริงๆสิ่งที่ 00:04:08.008 --> 00:04:11.013 เรามีที่นี่คือประโยชน์ของการพิมพ์ 00:04:11.013 --> 00:04:13.045 เรากำลังพูดถึงข้อมูลเกี่ยวกับการขอพิมพ์ 00:04:13.045 --> 00:04:17.094 เมื่อเทียบกับข้อมูลหลวมพิมพ์ถ้าคุณต้องการที่จะคิดว่ามันเป็นอย่างนั้น 00:04:17.094 --> 00:04:21.003 ตอนนี้ให้ดูที่เมื่อเราอาจไม่ต้องการใช้เป็น DTD 00:04:21.003 --> 00:04:22.065 ดังนั้นสิ่งที่ฉันจะอธิบายลง 00:04:22.065 --> 00:04:25.046 นี่คือประโยชน์ของการไม่ได้ใช้ DTD ที่ 00:04:25.046 --> 00:04:27.084 ดังนั้นประโยชน์ที่ใหญ่ที่สุดคือความยืดหยุ่น 00:04:27.084 --> 00:04:30.011 ดังนั้น DTD ทำให้คุณ 00:04:30.011 --> 00:04:31.011 ข้อมูล XML ต้องเป็นไปตามสเปค 00:04:31.011 --> 00:04:33.015 หากคุณต้องการความยืดหยุ่นมากขึ้นหรือ 00:04:33.015 --> 00:04:34.093 คุณต้องการความสะดวกในการเปลี่ยนแปลง 00:04:34.093 --> 00:04:36.078 ในทางที่ข้อมูลเป็น 00:04:36.078 --> 00:04:37.075 การจัดรูปแบบโดยไม่เรียกเป็น 00:04:37.075 --> 00:04:39.014 จำนวนมากของข้อผิดพลาดแล้วถ้า 00:04:39.014 --> 00:04:40.059 นั่นคือสิ่งที่คุณต้องการ 00:04:40.059 --> 00:04:42.018 แล้ว DTD สามารถ constraining 00:04:42.018 --> 00:04:45.004 ความเป็นจริงก็คือว่า DTDs สามารถ 00:04:45.004 --> 00:04:46.082 จะค่อนข้างยุ่งและนี้ 00:04:46.082 --> 00:04:48.008 จะไม่เห็นได้ชัด 00:04:48.008 --> 00:04:49.014 ให้คุณ ๆ จนกว่าเราจะได้รับ 00:04:49.014 --> 00:04:50.024 เข้าสาธิต แต่ถ้า 00:04:50.024 --> 00:04:52.099 ข้อมูลที่มีความผิดปกติที่ผิดปกติมากแล้ว 00:04:52.099 --> 00:04:55.048 ระบุโครงสร้างของมันสามารถ 00:04:55.048 --> 00:04:57.009 เป็นเรื่องยากโดยเฉพาะอย่างยิ่งสำหรับเอกสารที่ผิดปกติ 00:04:57.009 --> 00:05:00.051 อันที่จริงเมื่อเราเห็น 00:05:00.051 --> 00:05:02.066 ภาษาสคีมาเราจะ 00:05:02.066 --> 00:05:04.099 พบว่า XSDs สามารถ 00:05:04.099 --> 00:05:06.081 ผมจะบอกว่ายุ่งจริงๆดังนั้นพวกเขาจะได้รับจริงมีขนาดใหญ่มาก 00:05:06.081 --> 00:05:10.066 มันเป็นไปได้ที่จะมีการ 00:05:10.066 --> 00:05:11.077 เอกสารที่สเปคของ 00:05:11.077 --> 00:05:13.007 โครงสร้างของเอกสารคือ 00:05:13.007 --> 00:05:14.096 มากมีขนาดใหญ่กว่า 00:05:14.096 --> 00:05:16.033 เอกสารตัวเองซึ่งดูเหมือนจะไม่ 00:05:16.033 --> 00:05:18.016 ที่ใช้งานง่ายอย่างสิ้นเชิง แต่เมื่อเราได้รับ 00:05:18.016 --> 00:05:19.039 เรียนรู้เกี่ยวกับ XSDs ผมคิดว่าคุณจะเห็นวิธีการที่สามารถเกิดขึ้น 00:05:19.039 --> 00:05:22.007 ดังนั้นทั้งหมดนี้เป็น 00:05:22.007 --> 00:05:23.078 ประโยชน์ของการพิมพ์ศูนย์ 00:05:23.078 --> 00:05:26.002 มันจริงๆค่อนข้างคล้ายกับ 00:05:26.002 --> 00:05:28.038 การเปรียบเทียบในภาษาการเขียนโปรแกรม 00:05:28.038 --> 00:05:31.078 ส่วนที่เหลือของวิดีโอนี้จะ 00:05:31.078 --> 00:05:33.002 สอนเกี่ยวกับ DTDs ตัวเองผ่านชุดของตัวอย่าง 00:05:33.002 --> 00:05:35.094 เราจะมีวิดีโอแยกต่างหาก 00:05:35.094 --> 00:05:36.083 สำหรับการเรียนรู้เกี่ยวกับสคี XML และ XSDs 00:05:36.083 --> 00:05:39.044 ดังนั้นที่นี่เรามี 00:05:39.044 --> 00:05:41.066 เอกสารครั้งแรกของเราว่าเรา 00:05:41.066 --> 00:05:43.033 จะไปดูที่ที่มีคำอธิบายถึงประเภทของเอกสาร 00:05:43.033 --> 00:05:45.079 เรามีอยู่ออกจากเอกสารของตัวเอง 00:05:45.079 --> 00:05:47.061 เรามีทางด้านขวาเอกสารประเภท 00:05:47.061 --> 00:05:49.017 บ่งและแล้วเราก็มี 00:05:49.017 --> 00:05:50.033 ในด้านขวาล่างคำสั่ง 00:05:50.033 --> 00:05:51.096 เปลือกสายที่เรากำลังจะใช้ในการตรวจสอบเอกสาร 00:05:51.096 --> 00:05:55.015 ดังนั้นนี่คือข้อมูลที่คล้ายกับ 00:05:55.015 --> 00:05:56.028 สิ่งที่เราเห็นในวิดีโอที่ผ่านมา 00:05:56.028 --> 00:05:57.049 แต่ให้ผ่านมันไปเพียงเพื่อดูสิ่งที่เรามี 00:05:57.049 --> 00:05:59.005 เรามีองค์ประกอบนอกสุดเรียกว่า 00:05:59.005 --> 00:06:01.022 ร้านหนังสือและเรามีหนังสือสองเล่มในร้านหนังสือของเรา 00:06:01.022 --> 00:06:04.083 หนังสือเล่มแรกที่มี ISBN จำนวนราคาและรุ่น 00:06:04.083 --> 00:06:08.027 ในฐานะที่เป็นคุณลักษณะและแล้วมัน 00:06:08.027 --> 00:06:09.065 มีองค์ประกอบย่อยที่เรียกว่าชื่ออื่น 00:06:09.065 --> 00:06:12.001 องค์ประกอบย่อยที่เรียกว่าผู้เขียนมีสอง 00:06:12.001 --> 00:06:13.062 ผู้เขียนใต้; ชื่อและนามสกุล 00:06:13.062 --> 00:06:16.031 องค์ประกอบที่หนังสือเล่มที่สองคือ 00:06:16.031 --> 00:06:18.005 ที่คล้ายกัน แต่มันไม่ได้มีฉบับ 00:06:18.005 --> 00:06:20.067 นอกจากนี้ยังมีในขณะที่เราเห็นข้อสังเกต 00:06:20.067 --> 00:06:23.032 ตอนนี้ลองมาดูที่ 00:06:23.032 --> 00:06:24.084 ข้อกำหนดของ DTD และฉันแค่ไป 00:06:24.084 --> 00:06:25.062 ที่จะเดินผ่าน DTD ไม่ 00:06:25.062 --> 00:06:27.081 ช้าเกินไปไม่เร็วเกินไปและ 00:06:27.081 --> 00:06:29.019 อธิบายว่าสิ่งที่มันทำ 00:06:29.019 --> 00:06:30.079 ดังนั้นการเริ่มต้นของ 00:06:30.079 --> 00:06:31.096 DTD กล่าวนี้ 00:06:31.096 --> 00:06:33.027 DTD ชื่อร้านหนังสือและ 00:06:33.027 --> 00:06:35.017 องค์ประกอบหลักที่เรียกว่าร้านหนังสือ 00:06:35.017 --> 00:06:37.007 และตอนนี้เรามีโครงสร้างไวยากรณ์เหมือนครั้งแรก 00:06:37.007 --> 00:06:40.008 ดังนั้นโครงสร้างเหล่านี้ในความเป็นจริงมี 00:06:40.008 --> 00:06:42.016 นิด ๆ หน่อย ๆ เช่นการแสดงออกปกติถ้าคุณรู้ว่าพวกเขา 00:06:42.016 --> 00:06:44.053 สิ่งนี้บอกว่าเป็นที่ 00:06:44.053 --> 00:06:45.049 องค์ประกอบที่มีร้านหนังสือเป็น 00:06:45.049 --> 00:06:47.025 องค์ประกอบย่อยของหมายเลขใด ๆ 00:06:47.025 --> 00:06:49.011 ขององค์ประกอบที่เรียกว่าหนังสือหรือนิตยสาร 00:06:49.011 --> 00:06:51.028 เรามีหนังสือหรือนิตยสาร 00:06:51.028 --> 00:06:53.066 เราไม่ได้มีนิตยสารใด ๆ เลย แต่เราจะเพิ่มอีกหนึ่ง 00:06:53.066 --> 00:06:55.059 และจากนั้นแห่งนี้กล่าวว่ากรณีที่ศูนย์หรือมากกว่า 00:06:55.059 --> 00:06:58.069 มันเป็น Kleene สำหรับผู้ที่คุณคุ้นเคยกับการแสดงออกปกติ 00:06:58.069 --> 00:07:02.015 ตอนนี้เรามาพูดคุยเกี่ยวกับ 00:07:02.015 --> 00:07:04.034 สิ่งที่องค์ประกอบหนังสือเล่มนี้มีเพื่อให้เป็นสเปคของเราต่อไป 00:07:04.034 --> 00:07:07.091 องค์ประกอบที่มีหนังสือ 00:07:07.091 --> 00:07:09.039 ชื่อตามผู้เขียน 00:07:09.039 --> 00:07:11.089 ตามด้วยคำพูดที่ไม่จำเป็น 00:07:11.089 --> 00:07:13.073 ดังนั้นตอนนี้เราไม่ได้มีการ 00:07:13.073 --> 00:07:14.052 "หรือ" เรามีเครื่องหมายจุลภาคและ 00:07:14.052 --> 00:07:15.007 ที่บอกว่าเหล่านี้จะไป 00:07:15.007 --> 00:07:16.077 จะอยู่ในที่สั่งซื้อ - ชื่อ 00:07:16.077 --> 00:07:17.099 ผู้เขียนและคำพูดและ 00:07:17.099 --> 00:07:19.031 เครื่องหมายคำถามบอกว่าคำพูดจะเป็นตัวเลือก 00:07:19.031 --> 00:07:22.021 ต่อไปเรามีแอตทริบิวต์ขององค์ประกอบหนังสือของเรา 00:07:24.074 --> 00:07:26.043 ดังนั้นปังนี้รายการแอตทริบิวต์ 00:07:26.043 --> 00:07:27.064 บอกว่าเรากำลังจะอธิบาย 00:07:27.064 --> 00:07:28.085 คุณลักษณะและเรากำลังจะ 00:07:28.085 --> 00:07:31.038 จะมีสามของพวกเขา: ไอ, 00:07:31.038 --> 00:07:33.007 ราคาและรุ่นที่ 00:07:33.007 --> 00:07:35.016 ข้อมูล C เป็นชนิดของแอตทริบิวต์ 00:07:35.016 --> 00:07:36.024 มันเป็นเพียงสตริง 00:07:36.024 --> 00:07:37.072 และแล้วต้องบอกว่า 00:07:37.072 --> 00:07:39.028 แอตทริบิวต์จะต้องนำเสนอในขณะที่ 00:07:39.028 --> 00:07:41.042 โดยนัยกล่าวว่ามันไม่ได้มีที่จะนำเสนอ 00:07:41.042 --> 00:07:45.023 ในขณะที่คุณอาจจำเรามีหนังสือเล่มหนึ่งที่ไม่ได้มีฉบับ 00:07:45.023 --> 00:07:46.056 นิตยสารของเรามีเพียงแค่ไป 00:07:46.056 --> 00:07:47.066 ที่จะมีชื่อและพวกเขากำลังจะ 00:07:47.066 --> 00:07:49.089 จะมีคุณลักษณะที่เดือนและปี 00:07:49.089 --> 00:07:51.095 อีกครั้งที่เราไม่ได้มีนิตยสารใด ๆ 00:07:51.095 --> 00:07:53.074 ชื่อเรื่องเป็นไปได้ 00:07:53.074 --> 00:07:55.058 ประกอบด้วยข้อมูลสตริง 00:07:55.058 --> 00:07:58.025 ดังนั้นที่นี่เราเห็นชื่อของหลักสูตรแรกและระบบฐานข้อมูลของเรา 00:07:58.025 --> 00:08:02.001 คุณสามารถคิดว่าเป็นข้อมูลใบในต้นไม้ของ XML 00:08:02.001 --> 00:08:03.068 และเมื่อคุณมีใบที่ 00:08:03.068 --> 00:08:05.036 ประกอบด้วยข้อมูลที่เป็นข้อความนี้เป็น 00:08:05.036 --> 00:08:06.007 สิ่งที่คุณใส่ในการ DTD 00:08:06.007 --> 00:08:08.009 - เพียงแค่ใช้คำของฉันมัน 00:08:08.009 --> 00:08:10.078 ข้อมูลพีซีกัญชาในวงเล็บ 00:08:10.078 --> 00:08:14.031 ตอนนี้ผู้เขียนของเราเป็นองค์ประกอบที่ยังคงมีโครงสร้าง 00:08:14.031 --> 00:08:16.068 ผู้เขียนของเรามีองค์ประกอบย่อย, 00:08:16.068 --> 00:08:18.016 ผู้เขียนองค์ประกอบย่อยหรือองค์ประกอบ 00:08:18.016 --> 00:08:19.064 และเรากำลังจะไป 00:08:19.064 --> 00:08:21.002 ระบุที่นี่ที่ 00:08:21.002 --> 00:08:23.007 องค์ประกอบของผู้เขียนต้องมีหนึ่ง 00:08:23.007 --> 00:08:25.023 หรือมากกว่าองค์ประกอบย่อยที่หลากหลายผู้เขียน 00:08:25.023 --> 00:08:26.058 ดังนั้นสิ่งที่บวก 00:08:26.058 --> 00:08:29.054 ไม่ว่าจะเป็นที่นี่นำอีกครั้งจากการแสดงออกปกติ 00:08:29.054 --> 00:08:32.016 "พลัส" หมายความว่าหนึ่งหรือมากกว่าหนึ่งอินสแตนซ์ 00:08:32.016 --> 00:08:33.053 เรามีคำพูดที่ 00:08:33.053 --> 00:08:36.037 เป็นเพียงการไปเป็นข้อมูลหรือสตริง PC ข้อมูล 00:08:36.037 --> 00:08:38.004 ขณะนี้มีผู้เขียนของเราซึ่งประกอบด้วย 00:08:38.004 --> 00:08:40.002 ของชื่อแรกองค์ประกอบย่อยและ 00:08:40.002 --> 00:08:42.086 สุดท้ายชื่อองค์ประกอบย่อยและอยู่ในลำดับที่ 00:08:42.086 --> 00:08:46.018 และแล้วในที่สุดชื่อของเราครั้งแรกและชื่อสุดท้ายนอกจากนี้ยังมีจุดแข็ง 00:08:46.018 --> 00:08:47.067 ดังนั้นนี้เป็นทั้ง 00:08:47.067 --> 00:08:49.005 DTD และมันอธิบาย 00:08:49.005 --> 00:08:51.064 ในรายละเอียดโครงสร้าง 00:08:51.064 --> 00:08:53.026 ของเอกสารของเรา 00:08:53.026 --> 00:08:54.053 ตอนนี้เรามีคำสั่งเรา 00:08:54.053 --> 00:08:57.002 โดยใช้สิ่งที่เรียกว่า xmllint, 00:08:57.002 --> 00:09:00.009 ที่จะตรวจสอบดูว่าเอกสารที่เป็นไปตามโครงสร้าง 00:09:00.009 --> 00:09:02.021 เราก็จะเรียกใช้คำสั่งว่า 00:09:02.021 --> 00:09:03.087 ที่นี่มีสองตัวเลือกและ 00:09:03.087 --> 00:09:05.015 มันไม่ได้ทำให้เรามีผลใด ๆ 00:09:05.015 --> 00:09:09.049 ซึ่งอันที่จริงหมายความว่าเอกสารของเราคือการที่ถูกต้อง 00:09:09.049 --> 00:09:13.014 รวมทั้งจะทำให้การแก้ไขบางอย่างและเห็นเมื่อเอกสารของเราไม่ได้แก้ไขสิ่งที่เกิดขึ้นเมื่อเราเรียกใช้คำสั่ง 00:09:13.014 --> 00:09:14.078 ดังนั้นขอให้แก้ไขครั้งแรกของเรา 00:09:14.078 --> 00:09:16.014 สมมุติว่าเราตัดสินใจว่า 00:09:16.014 --> 00:09:17.071 เราต้องการคุณลักษณะเพิ่มเติม 00:09:17.071 --> 00:09:21.033 หนังสือของเราที่จะ "ต้อง" มากกว่า "ใช้" 00:09:21.033 --> 00:09:23.009 ดังนั้นเราจะเปลี่ยนการ DTD 00:09:23.009 --> 00:09:27.007 เราจะบันทึกไฟล์และตอนนี้เมื่อเราเรียกใช้คำสั่งของเรา 00:09:27.007 --> 00:09:28.087 ดังนั้นในขณะที่คาดว่าเราเตรียมพร้อม 00:09:28.087 --> 00:09:30.031 ข้อผิดพลาดและข้อผิดพลาดดังกล่าว 00:09:30.031 --> 00:09:33.031 ที่หนึ่งในองค์ประกอบที่หนังสือของเราไม่ได้นอกจากแอตทริบิวต์ 00:09:33.031 --> 00:09:36.073 ตอนนี้นอกจากที่จำเป็นทุกองค์ประกอบหนังสือควรจะมีมัน 00:09:36.073 --> 00:09:39.038 ดังนั้นขอเพิ่มนอกจากนี้หนังสือเล่มที่สองของเรา 00:09:39.038 --> 00:09:41.028 ขอบอกว่ามัน 00:09:41.028 --> 00:09:43.003 รุ่นที่สองบันทึก 00:09:43.003 --> 00:09:44.079 ไฟล์เราจะตรวจสอบของเรา 00:09:44.079 --> 00:09:48.035 เอกสารอีกครั้งและตอนนี้ทุกอย่างเป็นสิ่งที่ดี เถอะ 00:09:48.035 --> 00:09:49.076 ทำแก้ไขเอกสาร 00:09:49.076 --> 00:09:51.018 เวลานี้เพื่อดูว่า 00:09:51.018 --> 00:09:52.013 เกิดขึ้นเมื่อเราเปลี่ยน 00:09:52.013 --> 00:09:54.086 คำสั่งของชื่อและนามสกุล 00:09:54.086 --> 00:09:58.068 ดังนั้นเราจึงได้เปลี่ยนเจฟฟรีย์ Ullman จะเป็น Ullman เจฟฟรีย์ 00:09:58.068 --> 00:10:00.007 เราตรวจสอบเอกสารของเราและในขณะนี้ 00:10:00.007 --> 00:10:02.005 เราเห็นเรามีข้อผิดพลาด 00:10:02.005 --> 00:10:04.007 เพราะองค์ประกอบที่ไม่ได้อยู่ในลำดับที่ถูกต้อง 00:10:04.007 --> 00:10:06.046 ในกรณีนี้เราจะมายกเลิกว่า 00:10:06.046 --> 00:10:09.029 เปลี่ยนแทนที่จะเปลี่ยน DTD ของเรา 00:10:09.029 --> 00:10:11.028 ลองแก้ไขอีกครั้งเพื่อให้เอกสารของเรา 00:10:11.028 --> 00:10:13.035 ให้เพิ่มหมายเหตุให้หนังสือเล่มแรกของเรา 00:10:13.035 --> 00:10:14.064 แต่สิ่งที่เราจะทำคือ 00:10:14.064 --> 00:10:16.038 เราจะปล่อยให้คำพูดว่างเปล่าดังนั้น 00:10:16.038 --> 00:10:18.005 เราจะเพิ่มการเปิดแล้ว 00:10:18.005 --> 00:10:24.021 โดยตรงแท็กปิดและขอให้ดูว่าที่ตรวจสอบ 00:10:24.021 --> 00:10:25.021 ดังนั้นจึงไม่ตรวจสอบ 00:10:25.021 --> 00:10:26.068 และในความเป็นจริงเมื่อเรามี 00:10:26.068 --> 00:10:27.087 ข้อมูลเครื่องเป็นชนิด 00:10:27.087 --> 00:10:32.039 ขององค์ประกอบมันเป็นที่ยอมรับอย่างสมบูรณ์ที่จะมีองค์ประกอบที่ว่างเปล่า 00:10:32.039 --> 00:10:34.086 เป็นการเปลี่ยนแปลงครั้งสุดท้ายให้เพิ่มนิตยสารไปยังฐานข้อมูลของเรา 00:10:34.086 --> 00:10:37.046 คุณจะต้องอดทนกับฉันเป็นฉันพิมพ์ 00:10:37.046 --> 00:10:39.008 ฉันมักจะนิด ๆ หน่อย ๆ ช้า 00:10:39.008 --> 00:10:40.043 ดังนั้นเราจะเห็นว่ากว่าที่นี่ 00:10:40.043 --> 00:10:41.056 เมื่อเรามีนิตยสารมี 00:10:41.056 --> 00:10:44.052 สองแอตทริบิวต์ที่จำเป็นที่เดือนและปี 00:10:44.052 --> 00:10:45.091 ดังนั้นขอบอกว่าเป็นเดือน 00:10:45.091 --> 00:10:48.001 เดือนมกราคมและปี 00:10:48.001 --> 00:10:50.096 ขอให้ว่า 2011, 00:10:50.096 --> 00:10:53.094 และจากนั้นเรามีชื่อนิตยสารของเรา 00:10:53.094 --> 00:10:54.017 ที่นี่ 00:10:54.017 --> 00:10:55.073 เราจะไปลงที่นี่ 00:10:55.073 --> 00:11:00.052 ชื่อของเราขอให้มันเนชั่นแนลจีโอกราฟฟิก 00:11:00.052 --> 00:11:03.066 เราจะปิดแท็กแท็กชื่อ 00:11:03.066 --> 00:11:05.061 แล้วขอโทษอีกครั้งเกี่ยวกับการพิมพ์ของฉัน 00:11:05.061 --> 00:11:08.039 Let 's ไปข้างหน้าและตรวจสอบเอกสาร 00:11:08.039 --> 00:11:11.081 เราเห็นก่อนเวลาสิ้นสุดของบางสิ่งบางอย่างหรืออื่น ๆ 00:11:11.081 --> 00:11:13.022 เราลืมแท็กปิดของเราสำหรับ 00:11:13.022 --> 00:11:17.072 นิตยสารขอใส่ว่าใน 00:11:17.072 --> 00:11:19.009 พิมพ์ที่น่ากลัวของเราและที่นี่เราไป 00:11:19.009 --> 00:11:23.004 ลองตรวจสอบและเรากำลังทำ 00:11:23.004 --> 00:11:26.077 ตอนนี้เรากำลังจะเรียนรู้เกี่ยวกับคุณลักษณะและหมายเลขตัวแทน 00:11:26.077 --> 00:11:28.031 เอกสารทางด้านซ้าย 00:11:28.031 --> 00:11:29.056 มีข้อมูลเช่นเดียวกับ 00:11:29.056 --> 00:11:32.041 เอกสารก่อนหน้าของเรา แต่การปรับโครงสร้างหนี้อย่างสมบูรณ์ 00:11:32.041 --> 00:11:33.099 แทนที่จะต้องเขียนเป็น 00:11:33.099 --> 00:11:35.064 องค์ประกอบย่อยที่หลากหลายขององค์ประกอบหนังสือ 00:11:35.064 --> 00:11:37.059 เรากำลังจะมีผู้เขียนของเราแสดงรายการแยกต่างหาก, 00:11:37.059 --> 00:11:41.055 และจากนั้นได้อย่างมีประสิทธิภาพชี้จากหนังสือที่ผู้เขียนของหนังสือเล่มนี้ 00:11:41.055 --> 00:11:42.004 เราจะดูที่ A 00:11:42.004 --> 00:11:43.083 ข้อมูลแรกแล้ว 00:11:43.083 --> 00:11:47.011 เราจะดูที่ DTD ที่อธิบายข้อมูล 00:11:47.011 --> 00:11:48.037 Let 's จริงเริ่มต้นด้วย 00:11:48.037 --> 00:11:51.043 ผู้เขียนจึงองค์ประกอบร้านหนังสือของเรา 00:11:51.043 --> 00:11:55.006 ที่นี่มีสององค์ประกอบย่อยที่มีหนังสือและสามที่มีผู้เขียน 00:11:55.006 --> 00:11:56.091 ดังนั้นผู้เขียนมองหาที่เรามี 00:11:56.091 --> 00:11:58.014 ชื่อและนามสกุล 00:11:58.014 --> 00:11:59.095 เป็นองค์ประกอบย่อยตามปกติ แต่ 00:11:59.095 --> 00:12:02.038 เราได้เพิ่มสิ่งที่เราเรียกแอตทริบิวต์เลขรหัส 00:12:02.038 --> 00:12:03.059 นั่นไม่ใช่คำหลัก; เราได้เพียงแค่ 00:12:03.059 --> 00:12:05.026 เรียกว่า ident แอตทริบิวต์และ 00:12:05.026 --> 00:12:07.005 แล้วสำหรับแต่ละผู้เขียนสาม 00:12:07.005 --> 00:12:08.083 เราได้รับค่าสตริง 00:12:08.083 --> 00:12:10.018 แอตทริบิวต์ที่เรากำลังจะไป 00:12:10.018 --> 00:12:12.094 การใช้งานอย่างมีประสิทธิภาพสำหรับคำแนะนำในหนังสือ 00:12:12.094 --> 00:12:16.021 ดังนั้นเราจึงมีผู้เขียนสามของเราตอนนี้ลองมาดูที่หนังสือที่ 00:12:16.021 --> 00:12:18.042 หนังสือของเรามีจำนวน ISBN และราคา 00:12:18.042 --> 00:12:21.032 ฉันเอาออกนอกจากนี้สำหรับตอนนี้ 00:12:21.032 --> 00:12:23.082 แอตทริบิวต์พิเศษที่เรียกว่าผู้เขียน 00:12:23.082 --> 00:12:25.084 ผู้เขียนเป็นพนักงานประจำตัวประชาชน 00:12:25.084 --> 00:12:27.069 แอตทริบิวต์และมันก็คุ้มค่า 00:12:27.069 --> 00:12:28.098 สามารถดูได้ที่หนึ่งหรือ 00:12:28.098 --> 00:12:31.029 สายอื่น ๆ ที่มีคุณลักษณะ ID 00:12:31.029 --> 00:12:32.062 แอตทริบิวต์ในองค์ประกอบอื่น 00:12:32.062 --> 00:12:33.066 นั่นคือสิ่งที่เรากำลังทำอะไรที่นี่ 00:12:33.066 --> 00:12:36.077 เรากำลังหมายถึงสององค์ประกอบที่ผู้เขียนที่นี่ 00:12:36.077 --> 00:12:40.044 และในหนังสือเล่มที่สองของเราที่เรากำลังหมายถึงสามองค์ประกอบเขียน 00:12:40.044 --> 00:12:41.007 เรายังคงมี subelement ชื่อ 00:12:41.007 --> 00:12:44.091 และเรายังคงมีข้อสังเกต subelement 00:12:44.091 --> 00:12:46.027 และนอกจากนี้เรามีหนึ่ง 00:12:46.027 --> 00:12:47.087 สิ่งที่น่ารักอื่น ๆ ที่นี่ซึ่งเป็น 00:12:47.087 --> 00:12:49.081 แทนหมายถึง 00:12:49.081 --> 00:12:51.015 หนังสือเล่มนี้โดยใช้ชื่อภายใน 00:12:51.015 --> 00:12:52.057 พูดเมื่อเรากำลังพูดถึง 00:12:52.057 --> 00:12:56.001 หนังสือเล่มอื่น ๆ ที่เรามีประเภทของตัวชี้อีก 00:12:56.001 --> 00:12:57.062 ดังนั้นเราจะระบุว่า 00:12:57.062 --> 00:12:59.088 ISBN เป็น ID 00:12:59.088 --> 00:13:01.064 สำหรับหนังสือและแล้วนี้ 00:13:01.064 --> 00:13:03.061 เป็นตัวแทน ID แอตทริบิวต์ 00:13:03.061 --> 00:13:07.083 ที่หมายถึงรหัสของหนังสือเล่มอื่น ๆ 00:13:07.083 --> 00:13:11.063 ข้อกำหนดของ DTD ทางด้านขวาที่อธิบายถึงโครงสร้างของเอกสารนี้ 00:13:11.063 --> 00:13:12.092 ขณะนี้ร้านหนังสือของเราก็คือ 00:13:12.092 --> 00:13:14.031 จะมีศูนย์หรือมากกว่า 00:13:14.031 --> 00:13:17.038 หนังสือตามด้วยการเขียนเป็นศูนย์หรือมากกว่า 00:13:17.038 --> 00:13:18.077 หนังสือของเรามีชื่อและ 00:13:18.077 --> 00:13:20.083 เป็นประธานกล่าวเสริมมีองค์ประกอบย่อยที่หลากหลายและ 00:13:20.083 --> 00:13:22.097 ตอนนี้พวกเขามีคุณลักษณะที่สาม 00:13:22.097 --> 00:13:24.056 IDBN ซึ่งเป็น 00:13:24.056 --> 00:13:26.072 ตอนนี้เป็นชนิดพิเศษ 00:13:26.072 --> 00:13:28.061 แอตทริบิวต์ที่เรียกว่าและบัตรประจำตัวที่ 00:13:28.061 --> 00:13:30.001 ราคาซึ่งเป็นสตริง 00:13:30.001 --> 00:13:31.036 มูลค่าตามปกติและ 00:13:31.036 --> 00:13:32.077 ผู้เขียนซึ่งเป็นชนิดพิเศษ 00:13:32.077 --> 00:13:34.085 เรียกพนักงาน ID ขอให้ 00:13:34.085 --> 00:13:37.082 ไปที่ชื่อของเรามีค่าสายอักขระเพียงตามปกติ 00:13:37.082 --> 00:13:41.055 คำพูดนี่นี้เป็นโครงสร้างที่น่าสนใจจริง 00:13:41.055 --> 00:13:43.081 ข้อสังเกตประกอบด้วย 00:13:43.081 --> 00:13:46.002 ข้อมูลพีซีซึ่งเป็นสตริง 00:13:46.002 --> 00:13:47.058 หรือการอ้างอิงหนังสือแล้ว 00:13:47.058 --> 00:13:50.009 ศูนย์อินสแตนซ์มากขึ้นของบรรดา 00:13:50.009 --> 00:13:51.016 นี่คือประเภทของสร้าง 00:13:51.016 --> 00:13:52.073 ที่สามารถใช้ในการผสม 00:13:52.073 --> 00:13:55.019 สตริงและองค์ประกอบย่อยภายในองค์ประกอบ 00:13:55.019 --> 00:13:56.035 ดังนั้นเวลาที่คุณต้องการ 00:13:56.035 --> 00:13:57.063 องค์ประกอบที่อาจจะมีบางส่วน 00:13:57.063 --> 00:14:00.089 สตริงแล้วองค์ประกอบอื่นและค่าสตริงแล้วมากขึ้น 00:14:00.089 --> 00:14:01.082 นั่นเป็นวิธีที่มันทำ 00:14:01.082 --> 00:14:05.097 ข้อมูลคอมพิวเตอร์หรือองค์ประกอบประเภทศูนย์หรือมากกว่า 00:14:05.097 --> 00:14:08.002 แล้วเรามีการอ้างอิงหนังสือของเรา 00:14:08.002 --> 00:14:09.091 ซึ่งเป็นจริงเป็นองค์ประกอบที่ว่างเปล่ามัน 00:14:09.091 --> 00:14:11.039 น่าสนใจเพียงเพราะมีที่มี 00:14:11.039 --> 00:14:12.039 แอตทริบิวต์เพื่อให้เป็นไป 00:14:12.039 --> 00:14:13.046 กลับมาที่นี่เราเห็นหนังสือของเรา 00:14:13.046 --> 00:14:14.077 ห่อที่นี่จริง ๆ แล้วมันไม่ได้ 00:14:14.077 --> 00:14:16.049 มีข้อมูลใด ๆ หรือย่อย 00:14:16.049 --> 00:14:17.072 องค์ประกอบ แต่มันก็มี 00:14:17.072 --> 00:14:20.099 แอตทริบิวต์ชื่อหนังสือและนั่นคือ Ref ID 00:14:20.099 --> 00:14:22.074 นั่นหมายความว่ามันหมายถึง 00:14:22.074 --> 00:14:26.002 แอตทริบิวต์รหัสของผู้อื่นอีก 00:14:26.002 --> 00:14:27.004 ธาตุ. 00:14:27.004 --> 00:14:28.085 ตอนนี้เรามีผู้เขียนของเราเป็นครั้งแรก 00:14:28.085 --> 00:14:30.046 ชื่อและนามสกุลและ 00:14:30.046 --> 00:14:33.018 แอตทริบิวต์เขียนของเรามีอีกครั้ง 00:14:33.018 --> 00:14:35.089 ID และเราเรียกมันว่าเลขรหัส 00:14:35.089 --> 00:14:39.039 และในที่สุดก็ชื่อและนามสกุลเป็นค่าสตริง 00:14:39.039 --> 00:14:40.009 นี้อาจดูเหมือนครอบงำ แต่ 00:14:40.009 --> 00:14:43.045 จุดสำคัญใน DTD นี้ 00:14:43.045 --> 00:14:44.031 มีหมายเลขแอตทริบิวต์ 00:14:44.031 --> 00:14:46.051 ดังนั้นประชาชนแอตทริบิวต์ไอ 00:14:46.051 --> 00:14:48.028 แอตทริบิวต์ในหนังสือและ 00:14:48.028 --> 00:14:50.066 ident ที่ใดก็ตามที่มัน 00:14:50.066 --> 00:14:52.049 ไปแอตทริบิวต์ ident ในผู้เขียน 00:14:52.049 --> 00:14:53.093 เป็นคุณสมบัติพิเศษและโดย 00:14:53.093 --> 00:14:54.094 วิธีการที่พวกเขาไม่จำเป็นต้องเป็น 00:14:54.094 --> 00:14:57.021 ค่าที่ไม่ซ้ำสำหรับแอตทริบิวต์เหล่านั้น 00:14:57.021 --> 00:14:58.075 และพวกเขากำลังพิเศษในการที่ 00:14:58.075 --> 00:15:01.000 แอตทริบิวต์ refs ID สามารถดู 00:15:01.000 --> 00:15:03.052 เพื่อพวกเขาและที่จะถูกตรวจสอบเช่นกัน 00:15:03.052 --> 00:15:04.064 ตอนนี้ฉันไม่ต้องการที่จะ 00:15:04.064 --> 00:15:05.081 ชี้ให้เห็นว่าหนังสือเล่มนี้ 00:15:05.081 --> 00:15:08.043 การอ้างอิงที่นี่กล่าวว่า Ref ID เอกพจน์ 00:15:08.043 --> 00:15:09.009 เมื่อคุณมีเอกพจน์ 00:15:09.009 --> 00:15:11.019 Ref ID แล้วสตริงมี 00:15:11.019 --> 00:15:13.058 จะตรงค่า ID หนึ่ง 00:15:13.058 --> 00:15:15.066 เมื่อคุณมี refs ID พหูพจน์ 00:15:15.066 --> 00:15:17.019 แล้วสตริงของ 00:15:17.019 --> 00:15:19.001 แอตทริบิวต์เป็นหนึ่งหรือ 00:15:19.001 --> 00:15:21.038 เพิ่มเติม ID มูลค่าเตะผม 00:15:21.038 --> 00:15:24.039 ขออภัยค่าหนึ่งหรือมากกว่า ID คั่นด้วยช่องว่าง 00:15:24.039 --> 00:15:27.071 ดังนั้นจึงเป็นเรื่องเล็กน้อย clunky แต่มันก็ไม่ดูเหมือนจะทำงาน 00:15:27.071 --> 00:15:31.044 ตอนนี้ขอไปที่บรรทัดคำสั่งของเราและขอตรวจสอบเอกสาร 00:15:31.044 --> 00:15:33.007 ดังนั้นเอกสารในความเป็นจริงที่ถูกต้อง 00:15:33.007 --> 00:15:34.005 นั่นคือสิ่งที่มันหมายถึงเมื่อเรา 00:15:34.005 --> 00:15:35.065 ได้รับอะไรกลับมาและขอให้ 00:15:35.065 --> 00:15:36.089 ทำให้การเปลี่ยนแปลงบางอย่างที่เราทำ 00:15:36.089 --> 00:15:39.001 ก่อนที่จะสำรวจสิ่งที่โครงสร้าง 00:15:39.001 --> 00:15:42.002 จะเรียกเก็บและสิ่งที่ตรวจสอบกับ DTD นี้ในการปรากฏตัว 00:15:42.002 --> 00:15:44.006 รหัสและ refs ID 00:15:44.006 --> 00:15:46.031 เป็นการเปลี่ยนแปลงครั้งแรกของการเปลี่ยนแปลง Let 's 00:15:46.031 --> 00:15:48.031 ID นี้ระบุนี้ 00:15:48.031 --> 00:15:51.004 HG เพื่อ JU 00:15:51.004 --> 00:15:52.005 ที่จริงควรทำให้เกิดปัญหาสอง 00:15:52.005 --> 00:15:53.033 เมื่อเราทำอย่างนั้นเรามา 00:15:53.033 --> 00:15:56.061 ตรวจสอบเอกสารและดูสิ่งที่เกิดขึ้น 00:15:56.061 --> 00:15:58.094 และเราจะทำในความเป็นจริงจะได้รับสองข้อผิดพลาดต่างๆ 00:15:58.094 --> 00:16:00.058 ข้อผิดพลาดแรกบอกว่า 00:16:00.058 --> 00:16:03.007 เรามีสองกรณีของ "JU" 00:16:03.007 --> 00:16:04.026 ที่คุณสามารถดูที่นี่เรา 00:16:04.026 --> 00:16:06.004 ตอนนี้มี JU สองครั้งที่ 00:16:06.004 --> 00:16:08.007 ค่า ID จะต้องไม่ซ้ำกัน 00:16:08.007 --> 00:16:10.089 พวกเขาจะต้องไม่ซ้ำกันทั่วโลกตลอดทั้งเอกสาร 00:16:10.089 --> 00:16:12.029 ข้อผิดพลาดที่สองที่เกิดขึ้น 00:16:12.029 --> 00:16:14.045 เมื่อเราเปลี่ยนไป HG JU 00:16:14.045 --> 00:16:17.027 คือเราได้อย่างมีประสิทธิภาพมีตัวชี้ห้อยต่องแต่ง 00:16:17.027 --> 00:16:19.004 เราจะเรียก HG นี่ 00:16:19.004 --> 00:16:21.049 ใน ID นี้ refs แอตทริบิวต์ แต่มี 00:16:21.049 --> 00:16:24.026 ไม่เป็นองค์ประกอบที่มีค่า HG 00:16:24.026 --> 00:16:25.084 เพื่อให้เกิดข้อผิดพลาดเช่นกัน 00:16:25.084 --> 00:16:27.072 จึงขอเปลี่ยนมันกลับไป 00:16:27.072 --> 00:16:31.001 HG เพียงเพื่อให้เอกสารของเราคือการที่ถูกต้องอีกครั้ง 00:16:31.001 --> 00:16:34.076 ตอนนี้ขอให้การเปลี่ยนแปลงอื่นลองมาอ้างอิงหนังสือของเรา 00:16:34.076 --> 00:16:37.076 เราจะเห็นว่าการอ้างอิงหนังสือของเราจะหมายถึงหนังสือเล่มอื่น ๆ 00:16:37.076 --> 00:16:39.019 เรากำลังอยู่ในหนังสือเล่มสมบูรณ์ที่นี่ 00:16:39.019 --> 00:16:40.046 และแสดงความคิดเห็นที่เป็นคำพูด 00:16:40.046 --> 00:16:41.075 หมายถึงหลักสูตรแรก 00:16:41.075 --> 00:16:44.047 ผ่านหมายเลข ISBN แต่ขอ 00:16:44.047 --> 00:16:47.055 เปลี่ยนสายนี้แทนเพื่ออ้างถึง HG 00:16:47.055 --> 00:16:49.053 ดังนั้นตอนนี้เรากำลังหมายจริง 00:16:49.053 --> 00:16:51.087 ไปยังผู้เขียนมากกว่าหนังสืออีกเล่มหนึ่ง 00:16:51.087 --> 00:16:54.023 ลองตรวจสอบว่าเอกสารที่ตรวจสอบ 00:16:54.023 --> 00:16:55.044 ในความเป็นจริงมันไม่ 00:16:55.044 --> 00:16:56.064 และนั่นแสดงให้เห็นว่า 00:16:56.064 --> 00:16:59.008 ชี้เมื่อคุณมี DTD เป็น untyped 00:16:59.008 --> 00:17:01.004 จึงไม่ตรวจสอบให้ 00:17:01.004 --> 00:17:02.007 แน่ใจว่านี้เป็น 00:17:02.007 --> 00:17:03.072 ID ของส่วนอื่น แต่เรา 00:17:03.072 --> 00:17:05.005 ไม่สามารถที่จะระบุได้ว่า 00:17:05.005 --> 00:17:07.019 มันควรจะเป็นองค์ประกอบหนังสือ 00:17:07.019 --> 00:17:08.063 ใน DTD ของเราและเนื่องจากเรา 00:17:08.063 --> 00:17:10.004 ไม่สามารถที่จะระบุว่าให้ของ 00:17:10.004 --> 00:17:11.091 แน่นอนว่ามันเป็นไปไม่ได้ที่จะตรวจสอบ 00:17:11.091 --> 00:17:13.022 เราจะเห็นว่าในรูปแบบ XML 00:17:13.022 --> 00:17:14.086 คีมาเราสามารถพิมพ์ 00:17:14.086 --> 00:17:17.096 ชี้ แต่มันเป็นไปไม่ได้ที่จะมีพวกเขาใน DTDs 00:17:17.096 --> 00:17:19.016 การเปลี่ยนแปลงครั้งสุดท้ายที่ผมกำลังจะไป 00:17:19.016 --> 00:17:20.066 การแสดงคือการเพิ่ม 00:17:20.066 --> 00:17:22.081 อ้างอิงหนังสือเล่มที่สองของเราที่อยู่ในคำพูด 00:17:22.081 --> 00:17:24.017 ดังนั้นในขณะที่ผมชี้ให้เห็นมากกว่า 00:17:24.017 --> 00:17:26.034 ที่นี่เมื่อเราเขียนข้อมูลเครื่องคอมพิวเตอร์ 00:17:26.034 --> 00:17:28.014 หรือในประเภทองค์ประกอบ 00:17:28.014 --> 00:17:29.061 00:17:29.061 --> 00:17:31.035 ศูนย์หรือมากกว่าดาวที่ 00:17:31.035 --> 00:17:34.031 หมายความว่าเราได้อย่างอิสระสามารถผสมข้อความและองค์ประกอบย่อย 00:17:34.031 --> 00:17:39.071 ดังนั้นเพียงแค่อยู่ตรงกลางที่นี่ขอนำหนังสืออ้างอิง 00:17:39.071 --> 00:17:41.041 และเราสามารถใส่สมมติว่า 00:17:41.041 --> 00:17:45.067 หนังสือเล่มเท่ากับ JU และที่ 00:17:45.067 --> 00:17:46.092 จะเป็นจุดสิ้นสุดของการอ้างอิงของเรา 00:17:46.092 --> 00:17:48.062 มีและตอนนี้เรา 00:17:48.062 --> 00:17:50.027 เห็นว่าเรามีข้อความตาม 00:17:50.027 --> 00:17:51.067 โดย subelement ตามด้วยมากขึ้น 00:17:51.067 --> 00:17:53.031 ข้อความแล้วอื่น ๆ 00:17:53.031 --> 00:17:56.065 ที่ควรตรวจสอบที่ดีและในความเป็นจริงมันไม่ 00:17:56.065 --> 00:17:58.081 ที่เสร็จสมบูรณ์สาธิตของเรา 00:17:56.982 --> 00:18:00.982 เอกสาร XML ที่มี DTDs