ล่าสุดการพัฒนาเว็บบทเรียน
×

XML เกี่ยวกับการสอน

XML บ้าน XML บทนำ XML วิธีใช้ XML ต้นไม้ XML วากยสัมพันธ์ XML องค์ประกอบ XML แอตทริบิวต์ XML namespaces XML แสดง XML XSLT XML XPath XML XLink XML ตรวจสอบ XML DTD XML schema XML เซิร์ฟเวอร์ XML การประยุกต์ใช้งาน XML ตัวอย่าง XML ทดสอบ XML ใบรับรอง

XML DOM

DOM แนะนำ DOM โหนด DOM XMLHttpRequest DOM การเข้าถึง DOM ข้อมูลโหนด DOM รายการโหนด DOM ภายใน DOM การนำทาง DOM ได้รับค่า DOM Change โหนด DOM Remove โหนด DOM Replace โหนด DOM Create โหนด DOM Add โหนด DOM Clone โหนด DOM ตัวอย่าง

DOM การอ้างอิง

DOM ประเภทโหนด DOM ปม DOM NodeList DOM NamedNodeMap DOM เอกสาร DOM ธาตุ DOM คุณลักษณะ DOM ข้อความ DOM CDATA DOM คิดเห็น DOM XMLHttpRequest DOM parser

XML DTD

DTD แนะนำ DTD การก่อสร้างตึก DTD องค์ประกอบ DTD แอตทริบิวต์ DTD องค์ประกอบ VS attr DTD หน่วยงาน DTD ตัวอย่าง

XSD Schema

XSD แนะนำ XSD ทำอย่างไร XSD <schema> XSD องค์ประกอบ XSD แอตทริบิวต์ XSD ข้อ จำกัด

XSD ซับซ้อน

XSD องค์ประกอบ XSD ว่างเปล่า XSD เพียงองค์ประกอบ XSD ข้อความเท่านั้น XSD ผสม XSD ตัวชี้วัด XSD <any> XSD <anyAttribute> XSD การแทน XSD ตัวอย่าง

XSD Data

XSD เชือก XSD วันที่ XSD เป็นตัวเลข XSD อื่น ๆ XSD การอ้างอิง

Web บริการ

XML บริการ XML WSDL XML SOAP XML RDF XML RSS

 

XSD องค์ประกอบที่ซับซ้อน


องค์ประกอบที่ซับซ้อนมีองค์ประกอบอื่น ๆ และ / หรือแอตทริบิวต์


องค์ประกอบที่ซับซ้อนคืออะไร?

องค์ประกอบที่ซับซ้อนเป็นองค์ประกอบ XML ที่มีองค์ประกอบอื่น ๆ และ / หรือแอตทริบิวต์

มีสี่ชนิดขององค์ประกอบที่ซับซ้อนคือ:

  • องค์ประกอบที่ว่างเปล่า
  • องค์ประกอบที่มีองค์ประกอบอื่น ๆ เท่านั้น
  • องค์ประกอบที่มีเฉพาะข้อความ
  • องค์ประกอบที่มีทั้งองค์ประกอบอื่น ๆ และข้อความ

Note: แต่ละองค์ประกอบเหล่านี้อาจมีคุณลักษณะเช่นกัน!


ตัวอย่างขององค์ประกอบที่ซับซ้อน

ซับซ้อน XML องค์ประกอบ "product" ซึ่งเป็นที่ว่างเปล่า

<product pid="1345"/>

องค์ประกอบ XML ที่ซับซ้อน "employee" ซึ่งมีองค์ประกอบอื่น ๆ เท่านั้น:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

องค์ประกอบที่ซับซ้อน XML, "food" ซึ่งมีเฉพาะข้อความ:

<food type="dessert">Ice cream</food>

องค์ประกอบ XML ที่ซับซ้อน "description" ซึ่งมีทั้งองค์ประกอบและข้อความ:

<description>
It happened on <date lang="norwegian">03.03.99</date> ....
</description>

วิธีการกำหนดองค์ประกอบที่ซับซ้อน

ดูองค์ประกอบ XML นี้ซับซ้อน "employee" ซึ่งมีองค์ประกอบอื่น ๆ เท่านั้น:

<employee>
  <firstname>John</firstname>
  <lastname>Smith</lastname>
</employee>

เราสามารถกำหนดองค์ประกอบที่ซับซ้อนใน Schema XML สองวิธีที่แตกต่างกัน

1. "employee" องค์ประกอบสามารถประกาศได้โดยตรงโดยการตั้งชื่อธาตุเช่นนี้

<xs:element name="employee">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="firstname" type="xs:string"/>
      <xs:element name="lastname" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

หากคุณใช้วิธีการอธิบายไว้ข้างต้นเท่านั้น "employee" องค์ประกอบที่สามารถใช้ระบุประเภทที่ซับซ้อน โปรดทราบว่าองค์ประกอบของเด็กที่ "firstname" และ "lastname" จะถูกล้อมรอบด้วย <sequence> ตัวบ่งชี้ ซึ่งหมายความว่าองค์ประกอบของเด็กจะต้องปรากฏในลำดับเดียวกับที่พวกเขาจะประกาศ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับตัวชี้วัดในบท XSD ตัวชี้วัด

2. "employee" องค์ประกอบสามารถมีแอตทริบิวต์ประเภทที่หมายถึงชื่อของประเภทที่ซับซ้อนในการใช้:

<xs:element name="employee" type="personinfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

หากคุณใช้วิธีการที่อธิบายข้างต้นองค์ประกอบหลายอย่างสามารถอ้างถึงชนิดที่ซับซ้อนเดียวกันเช่นนี้

<xs:element name="employee" type="personinfo"/>
<xs:element name="student" type="personinfo"/>
<xs:element name="member" type="personinfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

นอกจากนี้คุณยังสามารถฐานองค์ประกอบที่ซับซ้อนบนองค์ประกอบที่ซับซ้อนที่มีอยู่และเพิ่มองค์ประกอบบางอย่างเช่นนี้

<xs:element name="employee" type="fullpersoninfo"/>

<xs:complexType name="personinfo">
  <xs:sequence>
    <xs:element name="firstname" type="xs:string"/>
    <xs:element name="lastname" type="xs:string"/>
  </xs:sequence>
</xs:complexType>

<xs:complexType name="fullpersoninfo">
  <xs:complexContent>
    <xs:extension base="personinfo">
      <xs:sequence>
        <xs:element name="address" type="xs:string"/>
        <xs:element name="city" type="xs:string"/>
        <xs:element name="country" type="xs:string"/>
      </xs:sequence>
    </xs:extension>
  </xs:complexContent>
</xs:complexType>