شجرة XML

تتمتع مستندات XML ببنية هرمية ويمكن تفسيرها من الناحية المفاهيمية على أنها بنية شجرية تسمى شجرة XML .

يجب أن تحتوي مستندات XML على عنصر جذر (وهو العنصر الأب لجميع العناصر الأخرى). يمكن أن تحتوي جميع العناصر في مستند XML على عناصر فرعية ونصوص وسمات. تبدأ الشجرة التي يمثلها مستند XML من عنصر الجذر وتتفرع إلى أدنى مستوى من العناصر. على الرغم من عدم وجود إجماع على المصطلحات المستخدمة في أشجار XML، فقد أصدر اتحاد شبكة الويب العالمية ( W3C) مصطلحين قياسيين على الأقل :

يُعرّف XPath صيغةً تُسمى تعبيرات XPath ، تُستخدم لتحديد مُكوّن داخلي واحد أو أكثر (عناصر، سمات، إلخ) في مستند XML. ويُستخدم XPath على نطاق واسع للوصول إلى البيانات ذات البنية XML.

تصف مجموعة معلومات XML، أو XML infoset، نموذج بيانات مجردًا لمستندات XML من حيث عناصر المعلومات. وهي تُستخدم غالبًا في مواصفات لغات XML، نظرًا لسهولة استخدامها في وصف القيود المفروضة على البنى التي تسمح بها تلك اللغات.

التمثيل على شكل أشجار

في الرياضيات، الشجرة هي رسم بياني غير موجه، حيث يرتبط أي رأسين بمسار بسيط واحد فقط. أي رسم بياني متصل بدون دورات بسيطة هو شجرة. تحاكي بنية بيانات الشجرة بنية شجرية هرمية بمجموعة من العقد المرتبطة. يتكون التسلسل الهرمي من ترتيب مُحدد على مجموعة. يُستخدم مصطلح التسلسل الهرمي للتأكيد على العلاقة الهرمية بين العناصر.

تُعرّف مواصفات XML مستند XML بأنه نص سليم البنية إذا استوفى قائمة من قواعد بناء الجملة المحددة في المواصفات. هذه المواصفات طويلة، ولكن هناك نقطتان أساسيتان تتعلقان ببنية شجرة مستند XML:

  • تم وضع علامات البداية والنهاية والعنصر الفارغ التي تحدد العناصر بشكل صحيح، دون وجود أي علامات مفقودة أو متداخلة.
  • يحتوي عنصر "جذر" واحد على جميع العناصر الأخرى

تُشبه هذه الخصائص خصائص الأشجار، حيث يوجد عقدة جذرية واحدة، وترتيب للعناصر. وقد ظهر XML كنوع بيانات أساسي في لغات برمجة أخرى. يُعرّف امتداد JavaScript (E4X) صراحةً كائنين محددين (XML وXMLList)، يدعمان عقد مستندات XML وقوائم عقد XML ككائنات منفصلة، ​​ويستخدمان تدوين النقطة لتحديد علاقات الأصل والفرع. [ 1 ] تُمثل هياكل البيانات هذه مستندات XML كهيكل شجري.

An XML Tree represented graphically can be as simple as an ASCII chart or a more graphically complex hierarchy. For instance, the XML document and the ASCII tree have the same structure. XML Trees do not show the content in an Instance document, only the structure of the document. In this example Product is the Root Element of the tree and the two child nodes of Product are Name and Details. Details contains two child nodes, Description and Price. The tree command in Windows and *nix also produce a similar tree structure and path.

Product ├───Name └───Details └───Description └───Price 
<Product><Name>Widget</Name><Details><Description>ThisWidgetisthehighestqualitywidget.</Description><Price>5.50</Price></Details></Product>

XPath Data Model

XPath, the XML Path Language, is a query language for selecting nodes from an XML document. XPath defines a syntax named XPath expressions that can query an XML document for one or more internal components (elements, attributes, etc.). XPath is widely used in other core-XML specifications and in programming libraries for accessing XML-encoded data. [2]

XPath Data Model terminology

The XPath Data Model is a long specification, and goes into many features unrelated to XML trees. Listed below are key terms from that specification and the XML specification.[3][4]

Instance
The data model represented as a sequence.
Instance document
A document using and conforming to the same sequence/XML tree.
Sequence
An order collection of zero or more items. A sequence cannot be a member of a sequence. A single item appearing individually is modeled as a sequence containing one item.
Element
A node within the sequence that may contain
Node
Any item represented in the XML tree/sequence.
Root Node
The topmost element of the tree. All other elements and nodes must be contained within the root node.
Item
A node or an atomic value.
Value space
The part of an item that contains data rather than additional elements.
Atomic type
A primitive simple type or a type derived by restriction from another atomic type.
Atomic value
A value contained in the value space that is an atomic type.
QName
The qualified name of an element. It must conform to naming rules of XML objects. (i.e. must start with a letter or underscore, case-sensitive, cannot start with the letters xml(in any case), can contain letters, digits, hyphens, underscores, and periods, cannot contain spaces.)
Expanded-QName
The fully qualified name of an element. It may include a prefix and namespace. It must include the local name of the element.

ضمن شجرة معينة، يفي ترتيب المستندات بالقيود التالية: [ 5 ]

  • العقدة الجذرية هي العقدة الأولى.
  • كل عقدة تظهر قبل جميع أبنائها وذريتها.
  • تتبع عقد مساحة الاسم مباشرةً عقدة العنصر المرتبطة بها. الترتيب النسبي لعقد مساحة الاسم ثابت ولكنه يعتمد على التنفيذ.
  • تتبع عقد السمات مباشرةً عقد مساحات الأسماء الخاصة بالعنصر المرتبط بها. إذا لم تكن هناك عقد مساحات أسماء مرتبطة بعنصر معين، فإن عقد السمات المرتبطة بذلك العنصر تتبعه مباشرةً. الترتيب النسبي لعقد السمات ثابت ولكنه يعتمد على التنفيذ.
  • الترتيب النسبي للأشقاء هو الترتيب الذي يظهرون به في خاصية الأبناء للعقدة الأصلية.
  • يأتي الأطفال والذرية قبل الأشقاء.

مجموعة معلومات XML

تصف مجموعة معلومات XML (XML Infoset) نموذج بيانات مجردًا لمستند XML من خلال مجموعة من عناصر المعلومات. تهدف التعريفات الواردة في مواصفات مجموعة معلومات XML إلى استخدامها في مواصفات أخرى تحتاج إلى الإشارة إلى المعلومات الموجودة في مستند XML سليم البنية. تُسهّل مجموعة المعلومات وصف القيود المفروضة على بنيات XML التي تسمح بها لغات XML الأخرى. يحتوي مستند XML على مجموعة معلومات إذا كان سليم البنية ويستوفي قيود مساحة الاسم. يمكن أن تحتوي مجموعة المعلومات على ما يصل إلى أحد عشر نوعًا مختلفًا من عناصر المعلومات.

  • عنصر معلومات المستند (موجود دائمًا)
  • معلومات العناصر
  • عناصر معلومات السمات
  • معلومات تعليمات المعالجة
  • عناصر معلومات مرجعية غير موسعة للكيان
  • معلومات الشخصية
  • معلومات التعليقات
  • بند معلومات إعلان نوع المستند
  • عناصر معلومات الكيان غير المحللة
  • معلومات عن عناصر التدوين
  • عناصر معلومات مساحة الاسم [ 6 ]

مصطلحات مجموعة معلومات XML

مجموعة معلومات XML عبارة عن مواصفة مطولة، وتتناول العديد من الميزات غير المرتبطة بأشجار XML. فيما يلي أهم المصطلحات المتعلقة بمصطلحات أشجار XML:

يوجد عنصر معلومات واحد فقط في مجموعة المعلومات، ويمكن الوصول إلى جميع عناصر المعلومات الأخرى من خصائص عنصر معلومات المستند، إما بشكل مباشر أو غير مباشر من خلال خصائص عناصر المعلومات الأخرى. يحتوي عنصر معلومات المستند على الخصائص التالية:

  • [أطفال]
  • [عنصر المستند]
  • [ملاحظات]
  • [كيانات غير محللة]
  • [معرّف الموارد الموحد الأساسي]
  • [مخطط ترميز الأحرف]
  • [مستقل]
  • [إصدار]
  • [تمت معالجة جميع الإقرارات]

يوجد عنصر معلومات لكل عنصر يظهر في مستند XML. أحد عناصر معلومات العنصر هو قيمة الخاصية [document element] الخاصة بعنصر معلومات المستند، والتي تُشير إلى جذر شجرة العناصر، ويمكن الوصول إلى جميع عناصر معلومات العناصر الأخرى من خلال تتبع الخاصية [children] الخاصة بها بشكل متكرر. يحتوي عنصر معلومات العنصر على الخصائص التالية:

  • [اسم النطاق]
  • [الاسم المحلي]
  • [بادئة]
  • [أطفال]
  • [صفات]
  • [سمات مساحة الاسم]
  • [نطاق الأسماء]
  • [معرّف الموارد الموحد الأساسي]
  • [الوالد]

يوجد عنصر معلومات سمة لكل سمة (محددة أو افتراضية) لكل عنصر في المستند، بما في ذلك تعريفات مساحات الأسماء. مع ذلك، تظهر هذه التعريفات كعناصر في خاصية [namespace attributes] للعنصر، وليس في خاصية [attributes]. لا تُمثَّل السمات المُعلنة في تعريف نوع المستند (DTD) بدون قيمة افتراضية، وغير المحددة في وسم بداية العنصر، بعناصر معلومات السمة. يحتوي عنصر معلومات السمة على الخصائص التالية:

  • [اسم النطاق]
  • [الاسم المحلي]
  • [بادئة]
  • [القيمة المعيارية]
  • [محدد]
  • [نوع السمة]
  • [مراجع]
  • [العنصر المالك] [ 7 ]

ملحوظات

  1. "معالجة XML باستخدام E4X". مركز مطوري موزيلا. مؤسسة موزيلا.
  2. نموذج بيانات XQuery 1.0 و XPath 2.0 (XDM) (الطبعة الثانية)، 14 ديسمبر 2010، http://www.w3.org/TR/xpath-datamodel/
  3. نموذج بيانات XQuery 1.0 و XPath 2.0 (XDM) (الطبعة الثانية)، 14 ديسمبر 2010، http://www.w3.org/TR/xpath-datamodel/
  4. لغة الترميز القابلة للتوسيع (XML) 1.0 (الطبعة الخامسة)، 26 نوفمبر 2008، تاريخ الاطلاع: 24 يوليو 2018، https://www.w3.org/TR/xml/REC-xml-20081126-review.html#sec-terminology
  5. نموذج بيانات XQuery 1.0 و XPath 2.0 (XDM) (الطبعة الثانية)، 14 ديسمبر 2010، http://www.w3.org/TR/xpath-datamodel/
  6. مجموعة معلومات XML (الطبعة الثانية)، 4 فبراير 2004، http://www.w3.org/TR/xml-infoset/
  7. مجموعة معلومات XML (الطبعة الثانية)، 4 فبراير 2004، http://www.w3.org/TR/xml-infoset/