کتابخانه‌ی استاندارد · کدگذاری و داده

اکس‌ام‌ال encoding/xml

خواندن، ساختن و نوشتن اکس‌ام‌ال، با XPath، اعتبارسنجی DTD، فضای نام و یک رابط ساده‌ی سبک.

واردسازی کدگذاری.اکس‌ام‌ال

این بسته اکس‌ام‌ال را می‌خواند، در آن جستجو می‌کند، ویرایشش می‌کند و می‌نویسد: خوراک‌ها، نقشه‌ی پایگاه، SVG، پاسخ‌های SOAP، پرونده‌های اداری و قالب‌های پیکربندی قدیمی. سه رابط برای سه اندازه از کار دارد.

  • رابط سند کامل‌ترین است. تجزیه متن را در یک سند می‌خواند و هر گره یک شناسه‌ی عددی دارد که به تابع‌هایی مثل نام، مقدار ویژگی، عنصرها و متن می‌دهید. پرسش‌های XPath 1.0، فضای نام، موجودیت‌ها، اعتبارسنجی DTD، ویرایش و خروجی استاندارد همه روی همین سند کار می‌کنند.
  • رابط گره ساده (کدگشایی، فرزند، ویژگی گره، کدگذاری) درخت را در ساختارهای معمولی گره ساده نگه می‌دارد. برای پیکربندی یا پاسخ کوچکی که یک بار می‌خوانید مناسب است و همان چیزی است که تبدیل قالب برای تبدیل اکس‌ام‌ال به مقدار و برعکس به کار می‌برد.
  • نشانه‌خوان (نشانه‌خوان جدید، نشانه بعدی) برچسب‌های آغاز و پایان و متن را یکی‌یکی می‌دهد و درختی نمی‌سازد.

اگر هر دو طرف را خودتان در دست دارید و فقط می‌خواهید داده جابه‌جا کنید، جیسون ساده‌تر است. این بسته را وقتی به کار ببرید که طرف مقابل اکس‌ام‌ال حرف می‌زند.

ورودی نامطمئن

اجرای تجزیه روی سندهایی که از بیرون می‌آیند بی‌خطر است. موجودیت‌های خارجی (<!ENTITY x SYSTEM "file:///etc/passwd">) هرگز خوانده نمی‌شوند، پس ارجاع به آن‌ها با خطای «اعلام‌نشده» شکست می‌خورد. گسترش موجودیت‌ها هم با max_entity_expansion (پیش‌فرض ۲۵۶ کیلوبایت) و max_entity_depth (۳۲) محدود است که جلوی حمله‌ی «میلیارد خنده» را می‌گیرد. عمق تودرتویی عنصرها هم حداکثر ۱۰۲۴ سطح است.

اشتباه‌های رایج

  • XPath نام‌ها را همان‌طور که نوشته شده‌اند مقایسه می‌کند. آزمون نام، نام کامل عنصر را همراه با پیشوندش با پرسش مقایسه می‌کند. //entry مدخل‌های Atom را در فضای نام پیش‌فرض پیدا می‌کند و //m:thumbnail فقط وقتی کار می‌کند که سند پیشوند m را به کار برده باشد. وقتی پیشوند ممکن است فرق کند، local-name() و namespace-uri() را بیازمایید؛ راهنمای فضای نام روشش را نشان می‌دهد.
  • همه‌ی مقدارها متن‌اند. متن و انتخاب رشته رشته برمی‌گردانند؛ انتخاب عدد را به کار ببرید یا خودتان تبدیل کنید.
  • متنی که فقط فاصله است به‌طور پیش‌فرض حذف می‌شود. هر جا تورفتگی مهم است، مثلاً در محتوای آمیخته، preserve_whitespace را در گزینه‌های تجزیه روشن کنید.
  • هر چه گرفتید آزاد کنید. یک سند و هر فهرست گره‌ای که انتخاب می‌دهد تا آزادسازی و آزادسازی فهرست حافظه نگه می‌دارند.
  • نشانه‌خوان سند را بررسی نمی‌کند. برچسب‌های پایان را با آغاز جفت نمی‌کند، فاصله‌های میان عنصرها را هم به شکل نشانه‌ی متن برمی‌گرداند و کل متن را در حافظه لازم دارد. اگر ورودی ممکن است خراب باشد، اول خوش‌ساخت است را اجرا کنید.

راهنما: خواندن خوراک با XPath

خوراک‌های RSS و Atom، نقشه‌ی پایگاه، SVG و پرونده‌های اداری همه اکس‌ام‌ال‌اند و XPath سریع‌ترین راه بیرون کشیدن مقدار از آن‌هاست. انتخاب رشته و انتخاب عدد یک پرسش کامل را در یک فراخوانی پاسخ می‌دهند؛ انتخاب گره‌های جور را برمی‌گرداند و پرسشی که از یکی از آن گره‌ها اجرا شود نسبت به همان گره است، پس title یعنی عنوان همان مورد.

encoding-xml-guide-rss.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع ریشه:
    خوراک := `<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Salam blog</title>
    <item>
      <title>Salam 0.5.5 is out</title>
      <link>https://example.com/posts/055</link>
      <category>release</category>
    </item>
    <item>
      <title>Writing a JSON API</title>
      <link>https://example.com/posts/json-api</link>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Persian keywords</title>
      <link>https://example.com/posts/persian</link>
      <category>tutorial</category>
    </item>
  </channel>
</rss>`
    ناپایا خطا := اکس‌ام‌ال.بدون خطا()
    ناپایا سند := اکس‌ام‌ال.تجزیه(خوراک، خطا)
    اگر وارونه خطا.موفق:
        سرچاپ "خوراک خراب است:"، اکس‌ام‌ال.متن خطا(خطا)
        برگشت ۱
    پایان
    بالا := اکس‌ام‌ال.گره سند(سند)
    سرچاپ "خوراک:"، اکس‌ام‌ال.انتخاب رشته(سند، بالا، "/rss/channel/title"، خطا)
    سرچاپ "نوشته‌ها:"، اکس‌ام‌ال.انتخاب عدد(سند، بالا، "count(//item)"، خطا)

    ناپایا آموزشی := اکس‌ام‌ال.انتخاب(سند، بالا، "//item[category = 'tutorial']"، خطا)
    هر گره در آموزشی.شناسه‌ها:
        سرچاپ "-"، اکس‌ام‌ال.انتخاب رشته(سند، گره، "title"، خطا)، "<" + اکس‌ام‌ال.انتخاب رشته(سند، گره، "link"، خطا) + ">"
    پایان
    اکس‌ام‌ال.آزادسازی فهرست(آموزشی)
    اکس‌ام‌ال.آزادسازی(سند)
پایان
خروجیخوراک: Salam blog نوشته‌ها: 3 - Writing a JSON API <https://example.com/posts/json-api> - The Persian keywords <https://example.com/posts/persian>

پالایه‌ی [category = 'tutorial'] فقط موردهایی را نگه می‌دارد که عنصر فرزندشان همین متن را دارد. پس از کار، فهرست گره‌ها را با آزادسازی فهرست و سند را با آزادسازی آزاد کنید.

راهنما: فضای نام در خوراک Atom

خوراک‌های Atom، SVG، SOAP و پرونده‌های اداری عنصرهایشان را در فضای نام می‌گذارند و اغلب چند فضای نام را با هم. این خوراک Atom را فضای نام پیش‌فرض گرفته و Media RSS را زیر پیشوند m آورده است. برنامه نشان می‌دهد XPath در این بسته با نام‌ها چطور رفتار می‌کند، و پرسشی که هر پیشوندی را که ناشر انتخاب کرده باشد می‌پذیرد.

encoding-xml-guide-namespaces.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع ریشه:
    خوراک := `<feed xmlns="http://www.w3.org/2005/Atom" xmlns:m="http://search.yahoo.com/mrss/">
  <title>Salam videos</title>
  <entry>
    <title>Install Salam</title>
    <m:thumbnail url="https://cdn.example/install.jpg"/>
  </entry>
  <entry>
    <title>Your first web server</title>
    <m:thumbnail url="https://cdn.example/server.jpg"/>
  </entry>
</feed>`
    ناپایا خطا := اکس‌ام‌ال.بدون خطا()
    ناپایا سند := اکس‌ام‌ال.تجزیه(خوراک، خطا)
    اگر وارونه خطا.موفق:
        سرچاپ اکس‌ام‌ال.متن خطا(خطا)
        برگشت ۱
    پایان
    بالا := اکس‌ام‌ال.گره سند(سند)
    سرچاپ "مدخل‌ها با نام:      "، اکس‌ام‌ال.انتخاب عدد(سند، بالا، "count(//entry)"، خطا)
    سرچاپ "با پیشوند m:        "، اکس‌ام‌ال.انتخاب عدد(سند، بالا، "count(//m:thumbnail)"، خطا)
    سرچاپ "با پیشوند media:    "، اکس‌ام‌ال.انتخاب عدد(سند، بالا، "count(//media:thumbnail)"، خطا)

    پرسش := "//*[local-name() = 'thumbnail' and namespace-uri() = 'http://search.yahoo.com/mrss/']"
    ناپایا تصویرها := اکس‌ام‌ال.انتخاب(سند، بالا، پرسش، خطا)
    هر ت در تصویرها.شناسه‌ها:
        سرچاپ اکس‌ام‌ال.نام(سند، ت)، "نام محلی:"، اکس‌ام‌ال.نام محلی(سند، ت)، "->"، اکس‌ام‌ال.مقدار ویژگی(سند، ت، "url")
    پایان
    اکس‌ام‌ال.آزادسازی فهرست(تصویرها)

    ریشه سند := اکس‌ام‌ال.عنصر ریشه(سند)
    سرچاپ "فضای نام ریشه:"، اکس‌ام‌ال.نشانی فضای نام(سند، ریشه سند)
    اکس‌ام‌ال.آزادسازی(سند)
پایان
خروجیمدخل‌ها با نام: 2 با پیشوند m: 2 با پیشوند media: 0 m:thumbnail نام محلی: thumbnail -> https://cdn.example/install.jpg m:thumbnail نام محلی: thumbnail -> https://cdn.example/server.jpg فضای نام ریشه: http://www.w3.org/2005/Atom

//entry جور درمی‌آید چون مدخل‌ها پیشوند ندارند و //m:thumbnail چون سند اتفاقاً m نوشته است. خوراکی که به جایش media:thumbnail بنویسد پرسش دوم را خراب می‌کند، ولی آزمون local-name() و namespace-uri() همچنان کار می‌کند. بیرون از XPath، نام محلی، پیشوند و نشانی فضای نام بخش‌های نام هر گره را می‌دهند و مقدار ویژگی با فضای نام ویژگی‌ای را که فضای نام دارد می‌خواند.

راهنما: ساختن نقشه‌ی پایگاه

برای نوشتن اکس‌ام‌ال، سند را گره به گره با ساخت عنصر، ساخت متن و افزودن فرزند بسازید و سپس بنویسید. یک تابع کمکی کوچک برای هر عنصر تکراری کد را کوتاه نگه می‌دارد. نوشتن سفارشی با تنظیم declaration و indent پرونده‌ای آماده برای sitemap.xml می‌سازد.

encoding-xml-guide-sitemap.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع افزودن نشانی(سند &: اکس‌ام‌ال.سند، پدر: صحیح، جا: رشته، تغییر: رشته):
    ن := اکس‌ام‌ال.ساخت عنصر(سند، "url")
    اکس‌ام‌ال.افزودن فرزند(سند، پدر، ن)
    ج := اکس‌ام‌ال.ساخت عنصر(سند، "loc")
    اکس‌ام‌ال.افزودن فرزند(سند، ن، ج)
    اکس‌ام‌ال.افزودن فرزند(سند، ج، اکس‌ام‌ال.ساخت متن(سند، جا))
    ت := اکس‌ام‌ال.ساخت عنصر(سند، "lastmod")
    اکس‌ام‌ال.افزودن فرزند(سند، ن، ت)
    اکس‌ام‌ال.افزودن فرزند(سند، ت، اکس‌ام‌ال.ساخت متن(سند، تغییر))
پایان

تابع ریشه:
    ناپایا سند := اکس‌ام‌ال.سند جدید()
    بن := اکس‌ام‌ال.ساخت عنصر(سند، "urlset")
    اکس‌ام‌ال.افزودن فرزند(سند، اکس‌ام‌ال.گره سند(سند)، بن)
    اکس‌ام‌ال.تنظیم ویژگی(سند، بن، "xmlns"، "http://www.sitemaps.org/schemas/sitemap/0.9")

    افزودن نشانی(سند، بن، "https://example.com/"، "2026-10-01")
    افزودن نشانی(سند، بن، "https://example.com/search?q=tea&page=2"، "2026-10-12")

    ناپایا گزینه‌ها := اکس‌ام‌ال.گزینه‌های نوشتن پیش فرض()
    گزینه‌ها.اعلان = درست
    گزینه‌ها.تورفتگی = "  "
    چاپ اکس‌ام‌ال.نوشتن سفارشی(سند، گزینه‌ها)
    اکس‌ام‌ال.آزادسازی(سند)
پایان
خروجی<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> <url> <loc>https://example.com/</loc> <lastmod>2026-10-01</lastmod> </url> <url> <loc>https://example.com/search?q=tea&amp;page=2</loc> <lastmod>2026-10-12</lastmod> </url> </urlset>

متن هنگام نوشتن گریزانده می‌شود، پس & در نشانی دوم به شکل &amp; نوشته شده، همان‌طور که اکس‌ام‌ال می‌خواهد. با ساختن سند به این روش هیچ‌وقت لازم نیست چیزی را با دست بگریزانید.

راهنما: یک پیکربندی کوچک با گره‌های ساده

برای پرونده‌ای کوتاه که یک بار خوانده می‌شود رابط ساده کافی است: کدگشایی سخت گیرانه ریشه را به شکل یک ساختار معمولی می‌دهد، فرزند و فرزندان عنصرها را با نام پیدا می‌کنند و ویژگی گره یک ویژگی را می‌خواند. پیدا شد می‌گوید فرزند چیزی یافته یا نه و دارای ویژگی اجازه می‌دهد ویژگی مقدار پیش‌فرض داشته باشد.

encoding-xml-guide-config.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع ریشه:
    متن := `<app name="shop">
  <listen host="0.0.0.0" port="8080"/>
  <plugin name="auth" enabled="true"/>
  <plugin name="cache" enabled="false"/>
  <plugin name="search"/>
</app>`
    ناپایا سالم := نادرست
    برنامه := اکس‌ام‌ال.کدگشایی سخت گیرانه(متن، سالم)
    اگر وارونه سالم:
        سرچاپ "پیکربندی خوش‌ساخت نیست"
        برگشت ۱
    پایان
    سرچاپ "برنامه:"، اکس‌ام‌ال.ویژگی گره(برنامه، "name")
    شنود := اکس‌ام‌ال.فرزند(برنامه، "listen")
    اگر اکس‌ام‌ال.پیدا شد(شنود):
        سرچاپ "گوش دادن:"، اکس‌ام‌ال.ویژگی گره(شنود، "host") + ":" + اکس‌ام‌ال.ویژگی گره(شنود، "port")
    پایان
    افزونه‌ها := اکس‌ام‌ال.فرزندان(برنامه، "plugin")
    هر ا در افزونه‌ها.گره‌ها:
        ناپایا روشن := درست
        اگر اکس‌ام‌ال.دارای ویژگی(ا، "enabled"):
            روشن = اکس‌ام‌ال.ویژگی گره(ا، "enabled") == "true"
        پایان
        سرچاپ "افزونه"، اکس‌ام‌ال.ویژگی گره(ا، "name")، "روشن:"، روشن
    پایان
    سرچاپ "عنصر cache دارد:"، اکس‌ام‌ال.پیدا شد(اکس‌ام‌ال.فرزند(برنامه، "cache"))
پایان
خروجیبرنامه: shop گوش دادن: 0.0.0.0:8080 افزونه auth روشن: true افزونه cache روشن: false افزونه search روشن: true عنصر cache دارد: false

راهنما: پیمودن خوراک کالا با نشانه‌خوان

فهرست قیمت‌ها و خروجی کاتالوگ‌ها ممکن است صدها هزار رکورد داشته باشند و اغلب فقط چند فیلد از آن‌ها لازم است. نشانه‌خوان یک بار از روی متن می‌گذرد و درختی نمی‌سازد، پس حافظه به اندازه‌ی خود متن می‌ماند. کمی وضعیت نگه دارید، اینجا اینکه درون کدام کالا هستید و آیا درون <name> هستید، و به نشانه‌هایی که برایتان مهم‌اند واکنش نشان دهید.

encoding-xml-guide-tokens.salam
واردسازی کدگذاری.اکس‌ام‌ال
واردسازی رشته

تابع ریشه:
    خوراک := `<products>
  <product sku="TEA-01" stock="14"><name>Green tea</name><price>4.50</price></product>
  <product sku="CUP-02" stock="0"><name>Glass cup</name><price>7.25</price></product>
  <product sku="POT-03" stock="3"><name>Tea pot &amp; lid</name><price>21.00</price></product>
</products>`
    ناپایا خوان := اکس‌ام‌ال.نشانه‌خوان جدید(خوراک)
    ناپایا کد کالا := ""
    ناپایا درون نام := نادرست
    ناپایا کالاها := ۰
    ناپایا ناموجود := ۰
    ناپایا تمام := نادرست
    تا وارونه تمام:
        ن := اکس‌ام‌ال.نشانه بعدی(خوان)
        اگر ن.نوع == اکس‌ام‌ال.نشانه اتمام:
            تمام = درست
        وگرنه ن.نوع == اکس‌ام‌ال.نشانه آغاز عنصر و ن.نام عنصر == "product":
            کالاها += ۱
            کد کالا = ن.ویژگی‌ها.بگیر("sku")
            اگر ن.ویژگی‌ها.بگیر("stock") == "0": ناموجود += ۱ پایان
        وگرنه ن.نوع == اکس‌ام‌ال.نشانه آغاز عنصر و ن.نام عنصر == "name":
            درون نام = درست
        وگرنه ن.نوع == اکس‌ام‌ال.نشانه انتهای عنصر و ن.نام عنصر == "name":
            درون نام = نادرست
        وگرنه ن.نوع == اکس‌ام‌ال.نشانه متن و درون نام:
            سرچاپ کد کالا، "یعنی"، رشته.پیرایش(ن.متن)
        پایان
    پایان
    سرچاپ کالاها، "کالا،"، ناموجود، "ناموجود"
پایان
خروجیTEA-01 یعنی Green tea CUP-02 یعنی Glass cup POT-03 یعنی Tea pot & lid 3 کالا، 1 ناموجود

ویژگی‌های برچسب آغاز در tok.attrs می‌رسند و موجودیت‌های متن کدگشایی می‌شوند، پس &amp; به شکل & درمی‌آید. نشانه‌های متن فاصله‌های میان برچسب‌ها را هم دارند؛ برای همین برنامه نام را پیرایش می‌کند و متن بیرون از <name> را نادیده می‌گیرد. برچسب خودبسته‌ای مثل <br/> یک نشانه‌ی آغاز و پشت سرش یک نشانه‌ی پایان می‌دهد.

راهنما: گزارش اکس‌ام‌ال خراب

اکس‌ام‌ال سخت‌گیر است: یک ریشه، هر برچسب به ترتیب بسته شود و هر & بخشی از یک موجودیت باشد. تجزیه در نخستین مشکل می‌ایستد و متن خطا سطر، ستون و دلیلی خوانا می‌دهد که می‌توان به نویسنده‌ی پرونده نشان داد. خوش‌ساخت است فقط بله یا نه می‌گوید.

encoding-xml-guide-errors.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع بررسی(برچسب: رشته، متن: رشته):
    ناپایا خطا := اکس‌ام‌ال.بدون خطا()
    ناپایا سند := اکس‌ام‌ال.تجزیه(متن، خطا)
    اگر خطا.موفق:
        سرچاپ برچسب، "درست"
    وگرنه:
        سرچاپ برچسب، اکس‌ام‌ال.متن خطا(خطا)
    پایان
    اکس‌ام‌ال.آزادسازی(سند)
پایان

تابع ریشه:
    بررسی("درست:          "، "<a><b>1</b></a>")
    بررسی("ناجور:         "، "<a>\n  <b>1</a>")
    بررسی("دو ریشه:       "، "<a/><b/>")
    بررسی("موجودیت بد:    "، "<a>&nope;</a>")
    بررسی("& بی‌گریز:      "، "<a>salt & pepper</a>")
    ناپایا خطا := اکس‌ام‌ال.بدون خطا()
    سرچاپ "بررسی سریع:"، اکس‌ام‌ال.خوش‌ساخت است("<x/>"، خطا)، اکس‌ام‌ال.خوش‌ساخت است("<x>"، خطا)
    سرچاپ "متن گریزانده:"، اکس‌ام‌ال.اسکیپ متن("salt & pepper")
پایان
خروجیدرست: درست ناجور: line 2, column 7: </a> closes <b> دو ریشه: line 1, column 5: a document may hold only one root element, and <b> is a second موجودیت بد: line 1, column 4: the entity "&nope;" is not declared & بی‌گریز: line 1, column 9: an entity reference has no closing semicolon بررسی سریع: true false متن گریزانده: salt &amp; pepper

حالت آخر رایج‌ترین اشتباه در پرونده‌های دست‌نویس است: یک & تنها در متن. وقتی خودتان اکس‌ام‌ال را از رشته‌ها می‌سازید، متن را از اسکیپ متن و مقدار ویژگی‌ها را از اسکیپ ویژگی بگذرانید، یا سند را با تابع‌های بالا بسازید که خودشان می‌گریزانند.

کدام رابط برای کدام کار

کاربه کار ببرید
پیکربندی یا پاسخ کوچک، یک بار خواندنکدگشایی، فرزند، فرزندان، ویژگی گره
یافتن مقدار در هر جای سندتجزیه و انتخاب، انتخاب رشته، انتخاب عدد
عنصرهای درون فضای نامXPath با local-name() و namespace-uri()، یا نام محلی و نشانی فضای نام
پیمودن یا تغییر سندعنصر ریشه، عنصرها، فرزند شماره، تنظیم متن، حذف فرزند
نوشتن سند تازهسند جدید، ساخت عنصر، افزودن فرزند، نوشتن با تورفتگی
پرونده‌های بزرگ، یک گذر، بی درختنشانه‌خوان جدید و نشانه بعدی
بررسی در برابر DTDتابع‌های DTD در مرجع پایین
تبدیل به جیسون یا یاملبسته‌ی تبدیل قالب

گونه‌ها

گزینه‌های نوشتن WriteOptions

ساختار گزینه‌های نوشتن
گزینه‌های نوشتن.
نامانگلیسیگونهتوضیح
تورفتگیindentرشته = ""واحد تورفتگی؛ خالی یعنی بی‌تورفتگی.
خط تازهnewlineرشته = " "خط تازه میان عنصرها وقتی تورفتگی هست.
اعلانdeclarationمنطقی = نادرستاعلان <?xml ...?> نوشته شود.
نوع سندdoctypeمنطقی = نادرستDOCTYPE نوشته شود.
عنصر خالی جفتیempty_as_pairمنطقی = نادرستعنصر خالی به شکل <a></a> نوشته شود.
مرتب‌سازی ویژگی‌هاsort_attributesمنطقی = نادرستویژگی‌ها به ترتیب الفبا.
کدکردن خط تازه ویژگی‌هاescape_newlines_in_attributesمنطقی = نادرستخط تازه در مقدار ویژگی به شکل &#10; نوشته شود.
encoding-xml-Build.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع ریشه:
    ناپایا س := اکس‌ام‌ال.سند جدید()
    ریشه‌ی سند := اکس‌ام‌ال.ساخت عنصر(س، "note")
    اکس‌ام‌ال.افزودن فرزند(س، اکس‌ام‌ال.گره سند(س)، ریشه‌ی سند)
    اکس‌ام‌ال.تنظیم ویژگی(س، ریشه‌ی سند، "id"، "7")
    اکس‌ام‌ال.تنظیم ویژگی(س، ریشه‌ی سند، "draft"، "yes")
    به := اکس‌ام‌ال.ساخت عنصر(س، "to")
    اکس‌ام‌ال.افزودن فرزند(س، ریشه‌ی سند، به)
    اکس‌ام‌ال.افزودن فرزند(س، به، اکس‌ام‌ال.ساخت متن(س، "مریم & رضا"))
    بدنه := اکس‌ام‌ال.ساخت عنصر(س، "body")
    اکس‌ام‌ال.افزودن فرزند(س، ریشه‌ی سند، بدنه)
    اکس‌ام‌ال.افزودن فرزند(س، بدنه، اکس‌ام‌ال.ساخت سی‌دیتا(س، "<b>پررنگ</b>"))
    اکس‌ام‌ال.درج پیش از(س، ریشه‌ی سند، اکس‌ام‌ال.ساخت توضیح(س، "گیرنده")، به)
    اکس‌ام‌ال.افزودن فرزند(س، اکس‌ام‌ال.گره سند(س)، اکس‌ام‌ال.ساخت دستور پردازش(س، "app"، "v=1"))
    سرچاپ اکس‌ام‌ال.نوشتن(س)
    سرچاپ اکس‌ام‌ال.حذف ویژگی(س، ریشه‌ی سند، "draft")، اکس‌ام‌ال.حذف فرزند(س، ریشه‌ی سند، بدنه)
    اکس‌ام‌ال.تنظیم متن(س، به، "همه")
    سرچاپ اکس‌ام‌ال.نوشتن با تورفتگی(س، "  ")
    سرچاپ اکس‌ام‌ال.نوشتن گره(س، به)، اکس‌ام‌ال.نوشتن گره با تورفتگی(س، به، "\t")
    ناپایا گ := اکس‌ام‌ال.گزینه‌های نوشتن پیش فرض()
    گ.اعلان = درست
    گ.عنصر خالی جفتی = درست
    سرچاپ اکس‌ام‌ال.نوشتن سفارشی(س، گ)
    سرچاپ اکس‌ام‌ال.نوشتن سند(س)
    ناپایا خ := اکس‌ام‌ال.بدون خطا()
    ناپایا د := اکس‌ام‌ال.تجزیه("<r b=\"2\"   a=\"1\"><x/></r>"، خ)
    سرچاپ اکس‌ام‌ال.شکل استاندارد(د)، اکس‌ام‌ال.شکل استاندارد گره(د، اکس‌ام‌ال.فرزند شماره(د، اکس‌ام‌ال.عنصر ریشه(د)، ۰))
    اکس‌ام‌ال.آزادسازی(د)
    اکس‌ام‌ال.آزادسازی(س)
پایان
خروجی<note id="7" draft="yes"><!--گیرنده--><to>مریم &amp; رضا</to><body><![CDATA[<b>پررنگ</b>]]></body></note><?app v=1?> true true <note id="7"> <!--گیرنده--> <to>همه</to> </note> <?app v=1?> <to>همه</to> <to>همه</to> <?xml version="1.0" encoding="UTF-8"?> <note id="7"><!--گیرنده--><to>همه</to></note><?app v=1?> <?xml version="1.0" encoding="UTF-8"?> <note id="7"><!--گیرنده--><to>همه</to></note><?app v=1?> <r a="1" b="2"><x></x></r> <x></x>

خطای تجزیه ParseError

ساختار خطای تجزیه
خطای خواندن اکس‌ام‌ال.
نامانگلیسیگونهتوضیح
موفقokمنطقی = درستآیا خواندن موفق بود.
پیامmessageرشته = ""پیام خطا.
خطlineصحیح = 0خط خطا.
ستونcolصحیح = 0ستون خطا.
جابجاییoffsetصحیح = 0جای خطا بر حسب بایت.
encoding-xml-Parse.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع ریشه:
    متن := "<?xml version=\"1.0\"?>\n<library xmlns:b=\"urn:books\">\n  <!-- فهرست -->\n  <b:book id=\"1\" lang=\"fa\"><title>بوف کور</title><year>1315</year></b:book>\n  <b:book id=\"2\"><title>سووشون</title></b:book>\n</library>"
    ناپایا خ := اکس‌ام‌ال.بدون خطا()
    ناپایا س := اکس‌ام‌ال.تجزیه(متن، خ)
    سرچاپ خ.موفق، س.نسخه، اکس‌ام‌ال.شمار گره‌ها(س) > ۰
    ر := اکس‌ام‌ال.عنصر ریشه(س)
    سرچاپ اکس‌ام‌ال.نام(س، ر)، اکس‌ام‌ال.نوع(س، ر) == اکس‌ام‌ال.نوع عنصر، اکس‌ام‌ال.والد(س، ر) == اکس‌ام‌ال.گره سند(س)
    ناپایا کتاب‌ها := اکس‌ام‌ال.عنصرها(س، ر)
    سرچاپ کتاب‌ها.شناسه‌ها.طول()
    ک := کتاب‌ها.شناسه‌ها[۰]
    سرچاپ اکس‌ام‌ال.نام(س، ک)، اکس‌ام‌ال.نام محلی(س، ک)، اکس‌ام‌ال.پیشوند(س، ک)، اکس‌ام‌ال.نشانی فضای نام(س، ک)
    سرچاپ اکس‌ام‌ال.خط(س، ک)، اکس‌ام‌ال.ستون(س، ک)، اکس‌ام‌ال.عمق(س، ک)، اکس‌ام‌ال.مسیر(س، ک)
    سرچاپ اکس‌ام‌ال.شمار ویژگی‌ها(س، ک)، اکس‌ام‌ال.ویژگی دارد(س، ک، "lang")، اکس‌ام‌ال.مقدار ویژگی(س، ک، "id")
    ویژ := اکس‌ام‌ال.ویژگی شماره(س، ک، ۱)
    سرچاپ ویژ.نام، ویژ.مقدار
    ع := اکس‌ام‌ال.نخستین عنصر با نام(س، ک، "title")
    سرچاپ اکس‌ام‌ال.متن(س، ع)، اکس‌ام‌ال.متن(س، ک)، اکس‌ام‌ال.عنصر است(س، ع)
    سرچاپ اکس‌ام‌ال.شمار فرزندان(س، ک)، اکس‌ام‌ال.نام(س، اکس‌ام‌ال.فرزند شماره(س، ک، ۱))
    سرچاپ اکس‌ام‌ال.نام(س، اکس‌ام‌ال.گره هم‌سطح بعدی(س، ع))، اکس‌ام‌ال.گره هم‌سطح قبلی(س، ع)
    ناپایا همه := اکس‌ام‌ال.نوادگان(س، ر)
    ناپایا عنوان‌ها := اکس‌ام‌ال.عنصرهای با نام(س، ر، "b:book")
    ناپایا نیاکان := اکس‌ام‌ال.نیاکان(س، ع)
    ناپایا فرزندها := اکس‌ام‌ال.گره‌های فرزند(س، ر)
    سرچاپ همه.شناسه‌ها.طول()، عنوان‌ها.شناسه‌ها.طول()، نیاکان.شناسه‌ها.طول()، فرزندها.شناسه‌ها.طول()
    سرچاپ اکس‌ام‌ال.وجود دارد(س، ۹۹۹۹)، اکس‌ام‌ال.مقدار(س، اکس‌ام‌ال.فرزند شماره(س، ع، ۰))
    اکس‌ام‌ال.آزادسازی فهرست(همه)
    اکس‌ام‌ال.آزادسازی فهرست(عنوان‌ها)
    اکس‌ام‌ال.آزادسازی فهرست(نیاکان)
    اکس‌ام‌ال.آزادسازی فهرست(فرزندها)
    اکس‌ام‌ال.آزادسازی فهرست(کتاب‌ها)
    _ := اکس‌ام‌ال.تجزیه("<a><b></a>"، خ)
    سرچاپ خ.موفق، خ.خط، اکس‌ام‌ال.متن خطا(خ)
    سرچاپ اکس‌ام‌ال.خوش‌ساخت است("<x/>"، خ)
    اکس‌ام‌ال.آزادسازی(س)
    ناپایا گ := اکس‌ام‌ال.گزینه‌های پیش فرض()
    گ.نگه‌داشتن توضیح‌ها = نادرست
    ناپایا د := اکس‌ام‌ال.تجزیه سفارشی("<!DOCTYPE p [<!ENTITY site \"سلام\">]><p xmlns:x=\"urn:x\" x:id=\"7\">&site; <b>ب</b> پایان</p>"، گ، خ)
    پ := اکس‌ام‌ال.عنصر ریشه(د)
    سرچاپ خ.موفق، اکس‌ام‌ال.شمار موجودیت‌ها(د)، اکس‌ام‌ال.مقدار موجودیت(د، "site")
    سرچاپ "[" + اکس‌ام‌ال.متن مستقیم(د، پ) + "]"، اکس‌ام‌ال.مقدار ویژگی با فضای نام(د، پ، "urn:x"، "id")
    سرچاپ اکس‌ام‌ال.سقف عمق موجودیت، اکس‌ام‌ال.سقف گسترش موجودیت، گ.بیشترین عمق
    اکس‌ام‌ال.آزادسازی(د)
پایان
خروجیtrue 1.0 true library true true 2 b:book book b urn:books 4 3 2 /library[1]/b:book[1] 2 true 1 lang fa بوف کور بوف کور1315 true 2 year year -1 9 2 3 3 false بوف کور false 1 line 1, column 7: </a> closes <b> true true 1 سلام [سلام پایان] 7 32 262144 1024

گزینه‌های تجزیه ParseOptions

ساختار گزینه‌های تجزیه
گزینه‌های خواندن.
نامانگلیسیگونهتوضیح
حفظ فاصله‌هاpreserve_whitespaceمنطقی = نادرستگره‌های متنی که فقط فاصله‌اند نگه داشته شوند.
نگه‌داشتن توضیح‌هاkeep_commentsمنطقی = درستتوضیح‌ها نگه داشته شوند.
نگه‌داشتن دستورهاkeep_instructionsمنطقی = درستدستورهای پردازش نگه داشته شوند.
فضای نام‌هاnamespacesمنطقی = درستفضای نام‌ها حل شوند.
گسترش موجودیت‌هاexpand_entitiesمنطقی = درستموجودیت‌ها با مقدارشان جایگزین شوند.
بیشترین عمقmax_depthصحیح = 1024بیشترین عمق عنصرها.
بیشترین عمق موجودیتmax_entity_depthصحیحبیشترین عمق موجودیت‌های تو‌در‌تو.
بیشترین گسترش موجودیتmax_entity_expansionصحیحبیشترین طول متن پس از گسترش موجودیت‌ها؛ در برابر حمله‌ی «بمب موجودیت».

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

اعلان عنصر ElementDecl

ساختار اعلان عنصر
اعلان یک عنصر در DTD.
نامانگلیسیگونهتوضیح
نامnameرشته = ""نام عنصر.
محتواcontentصحیح = 1نوع محتوا؛ یکی از ثابت‌های محتوا.
مدلmodelرشته = ""مدل محتوا به شکل متن، مثل (to, body).
ریشهrootصحیح = -1ریشه‌ی درخت مدل.
آمیختهmixedوکتور<رشته>نام عنصرهای مجاز در محتوای آمیخته.
encoding-xml-DTD.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع ریشه:
    د := اکس‌ام‌ال.تجزیه دی‌تی‌دی("<!ELEMENT note (to, body)>\n<!ELEMENT to (#PCDATA)>\n<!ELEMENT body (#PCDATA)>\n<!ATTLIST note id ID #REQUIRED kind (a|b) \"a\">")
    سرچاپ د.موفق، اکس‌ام‌ال.شمار عنصرهای اعلام‌شده(د)، اکس‌ام‌ال.شمار ویژگی‌های اعلام‌شده(د)
    ع := د.عنصرها[۰]
    سرچاپ ع.نام، ع.محتوا == اکس‌ام‌ال.محتوای فرزندان، ع.مدل
    ویژ := د.ویژگی‌ها[۱]
    سرچاپ ویژ.نام، ویژ.گونه == اکس‌ام‌ال.ویژگی فهرستی، ویژ.حالت == اکس‌ام‌ال.پیش فرض با مقدار، ویژ.مقدار پیش‌فرض، ویژ.مقدارهای مجاز
    ناپایا خ := اکس‌ام‌ال.بدون خطا()
    ناپایا خوب := اکس‌ام‌ال.تجزیه("<note id=\"n1\"><to>من</to><body>سلام</body></note>"، خ)
    ناپایا گزارش := اکس‌ام‌ال.اعتبارسنجی(خوب، د)
    سرچاپ گزارش.معتبر
    اکس‌ام‌ال.آزادسازی گزارش(گزارش)
    سرچاپ اکس‌ام‌ال.اعمال پیش فرض‌ها(خوب، د)، اکس‌ام‌ال.مقدار ویژگی(خوب، اکس‌ام‌ال.عنصر ریشه(خوب)، "kind")
    ناپایا بد := اکس‌ام‌ال.تجزیه("<note><body>بی گیرنده</body></note>"، خ)
    ناپایا گ۲ := اکس‌ام‌ال.اعتبارسنجی(بد، د)
    سرچاپ گ۲.معتبر، گ۲.موردها.طول()
    سرچاپ اکس‌ام‌ال.متن گزارش(گ۲)
    اکس‌ام‌ال.آزادسازی گزارش(گ۲)
    ناپایا درونی := اکس‌ام‌ال.تجزیه("<!DOCTYPE a [<!ELEMENT a EMPTY>]><a>متن</a>"، خ)
    ناپایا گ۳ := اکس‌ام‌ال.اعتبارسنجی زیرمجموعه داخلی(درونی)
    سرچاپ گ۳.معتبر، درونی.نوع سند
    اکس‌ام‌ال.آزادسازی گزارش(گ۳)
    ناپایا فضا := اکس‌ام‌ال.تجزیه("<a xmlns:x=\"urn:x\"><x:b/></a>"، خ)
    ناپایا گ۴ := اکس‌ام‌ال.بررسی فضای نام(فضا)
    سرچاپ گ۴.معتبر
    اکس‌ام‌ال.آزادسازی گزارش(گ۴)
    ناپایا د۲ := د
    اکس‌ام‌ال.آزادسازی دی‌تی‌دی(د۲)
    اکس‌ام‌ال.آزادسازی(خوب)
    اکس‌ام‌ال.آزادسازی(بد)
    اکس‌ام‌ال.آزادسازی(درونی)
    اکس‌ام‌ال.آزادسازی(فضا)
پایان
خروجیtrue 3 2 note true (to, body) kind true true a ["a", "b"] true 1 a false 2 line 1, column 1: the children of <note> do not match (to, body) line 1, column 1: <note> is missing the required attribute "id" false a true

اعلان ویژگی AttrDecl

ساختار اعلان ویژگی
اعلان یک ویژگی در DTD.
نامانگلیسیگونهتوضیح
عنصرelementرشته = ""عنصر صاحب ویژگی.
نامnameرشته = ""نام ویژگی.
گونهkindصحیح = 0گونه‌ی ویژگی؛ یکی از ثابت‌های ویژگی.
حالتmodeصحیح = 1حالت پیش‌فرض؛ یکی از ثابت‌های پیش فرض.
مقدار پیش‌فرضvalueرشته = ""مقدار پیش‌فرض.
مقدارهای مجازvaluesوکتور<رشته>مقدارهای مجاز ویژگی فهرستی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

دی‌تی‌دی DTD

ساختار دی‌تی‌دی
تعریف گونه‌ی سند.
نامانگلیسیگونهتوضیح
موفقokمنطقی = درستآیا DTD درست خوانده شد.
پیامmessageرشته = ""پیام خطا.
عنصرهاelementsوکتور<اعلان عنصر>اعلان عنصرها.
ویژگی‌هاattributesوکتور<اعلان ویژگی>اعلان ویژگی‌ها.
نشان‌گذاری‌هاnotationsوکتور<رشته>نشان‌گذاری‌ها.
مدل‌هاmodelsوکتوردرخت مدل‌های محتوا.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

تخلف Violation

ساختار تخلف
یک مورد نقض در اعتبارسنجی.
نامانگلیسیگونهتوضیح
پیامmessageرشته = ""توضیح مشکل.
خطlineصحیح = 0خط.
ستونcolصحیح = 0ستون.
گرهnodeصحیح = -1شناسه‌ی گره.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

گزارش اعتبارسنجی Report

ساختار گزارش اعتبارسنجی
نتیجه‌ی اعتبارسنجی.
نامانگلیسیگونهتوضیح
معتبرokمنطقی = درستاگر هیچ نقضی نباشد، درست است.
موردهاitemsوکتور<تخلف>موردهای نقض.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

گره ساده XMLNode

ساختار گره ساده
گره ساده: یک عنصر با ویژگی‌ها، فرزندان و متن؛ برای کارهای کوچک بدون سند.
نامانگلیسیگونهتوضیح
نام عنصرtagرشته = ""نام عنصر.
ویژگی‌هاattrsنگاشت<رشته، رشته>ویژگی‌ها.
فرزندانchildrenوکتور<گره ساده>عنصرهای فرزند.
متنtextرشته = ""متن عنصر.
encoding-xml-Simple.salam
واردسازی کدگذاری.اکس‌ام‌ال
واردسازی کدگذاری.مقدار

تابع ریشه:
    ن := اکس‌ام‌ال.کدگشایی("<config env=\"prod\"><db host=\"localhost\" port=\"5432\"/><feature>search</feature><feature>chat</feature></config>")
    سرچاپ ن.نام عنصر، اکس‌ام‌ال.دارای ویژگی(ن، "env")، اکس‌ام‌ال.ویژگی گره(ن، "env")
    د := اکس‌ام‌ال.فرزند(ن، "db")
    سرچاپ اکس‌ام‌ال.پیدا شد(د)، اکس‌ام‌ال.ویژگی گره(د، "port")، اکس‌ام‌ال.پیدا شد(اکس‌ام‌ال.فرزند(ن، "cache"))
    ف := اکس‌ام‌ال.فرزندان(ن، "feature")
    سرچاپ ف.گره‌ها.طول()، ف.گره‌ها[۱].متن
    ناپایا ت := اکس‌ام‌ال.گره ساده جدید("item")
    اکس‌ام‌ال.تنظیم ویژگی گره(ت، "id"، "3")
    ناپایا ب := اکس‌ام‌ال.گره ساده جدید("name")
    ب.متن = "کتاب"
    اکس‌ام‌ال.افزودن گره فرزند(ت، ب)
    سرچاپ اکس‌ام‌ال.کدگذاری(ت)
    سرچاپ اکس‌ام‌ال.کدگذاری با تورفتگی(ت، "  ")
    سرچاپ اکس‌ام‌ال.کدگذاری با اعلان(ت)
    سرچاپ اکس‌ام‌ال.معتبر("<a><b/></a>")، اکس‌ام‌ال.معتبر("<a><b></a>")
    ناپایا خوانده := نادرست
    _ := اکس‌ام‌ال.کدگشایی سخت گیرانه("<a>"، خوانده)
    سرچاپ خوانده
    م := اکس‌ام‌ال.به مقدار(ن)
    سرچاپ مقدار.رشته اشکال زدایی(م)
    سرچاپ اکس‌ام‌ال.کدگذاری(اکس‌ام‌ال.از مقدار(م، "root"))
    سرچاپ اکس‌ام‌ال.اسکیپ متن("a < b & c")، اکس‌ام‌ال.اسکیپ ویژگی(`"x"`)، اکس‌ام‌ال.بازگردانی موجودیت‌ها("&lt;p&gt; &amp; &#1587;")
    ناپایا خوان := اکس‌ام‌ال.نشانه‌خوان جدید("<a x=\"1\">سلام<!--c--></a>")
    تا درست:
        ن۲ := اکس‌ام‌ال.نشانه بعدی(خوان)
        اگر ن۲.نوع == اکس‌ام‌ال.نشانه اتمام یا ن۲.نوع == اکس‌ام‌ال.نشانه خطا:
            بشکن
        پایان
        سرچاپ ن۲.نوع، ن۲.نام عنصر، ن۲.متن
    پایان
    سرچاپ اکس‌ام‌ال.نشانه آغاز عنصر، اکس‌ام‌ال.نشانه انتهای عنصر، اکس‌ام‌ال.نشانه متن، اکس‌ام‌ال.نشانه توضیح، اکس‌ام‌ال.نشانه سی‌دیتا
پایان
خروجیconfig true prod true 5432 false 2 chat <item id="3"><name>کتاب</name></item> <item id="3"> <name>کتاب</name> </item> <?xml version="1.0" encoding="UTF-8"?> <item id="3"><name>کتاب</name></item> true false false object{@env: string(prod), db: object{@host: string(localhost), @port: string(5432)}, feature: array[string(search), string(chat)]} <root env="prod"><db host="localhost" port="5432"/><feature>search</feature><feature>chat</feature></root> a &lt; b &amp; c &quot;x&quot; <p> & س 1 a 3 سلام 4 c 2 a 1 2 3 4 5

فهرست گره ساده XMLNodeList

ساختار فهرست گره ساده
فهرستی از گره‌های ساده.
نامانگلیسیگونهتوضیح
گره‌هاitemsوکتور<گره ساده>گره‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

نشانه اکس‌ام‌ال XMLToken

ساختار نشانه اکس‌ام‌ال
یک نشانه از نشانه‌خوان.
نامانگلیسیگونهتوضیح
نوعkindصحیح = 0نوع نشانه؛ یکی از ثابت‌های نشانه.
نام عنصرtagرشته = ""نام عنصر.
ویژگی‌هاattrsنگاشت<رشته، رشته>ویژگی‌های عنصر آغازی.
متنtextرشته = ""متن نشانه‌ی متن یا توضیح.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

نشانه‌خوان اکس‌ام‌ال XMLTokenizer

ساختار نشانه‌خوان اکس‌ام‌ال
نشانه‌خوان: متن را بدون ساختن درخت، نشانه به نشانه می‌خواند؛ برای پرونده‌های بزرگ.
نامانگلیسیگونهتوضیح
متنtextرشته = ""متن ورودی.
جایگاهposصحیح = 0جای فعلی.
خرابbadمنطقی = نادرستبرای خطاها رزرو شده؛ نشانه‌خوان هنوز آن را تنظیم نمی‌کند.
انتهای معلقpendingEndرشته = ""عنصر خودبسته‌ای که نشانه‌ی پایانش هنوز داده نشده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

مقدار اکس‌پث XPathValue

ساختار مقدار اکس‌پث
نتیجه‌ی ارزیابی XPath: مجموعه‌ی گره، رشته، عدد یا منطقی.
نامانگلیسیگونهتوضیح
نوعkindصحیح = 0نوع نتیجه؛ یکی از ثابت‌های مقدار.
گره‌هاnodesفهرست گرهگره‌ها، اگر نتیجه مجموعه‌ی گره باشد.
متنtextرشته = ""نتیجه‌ی رشته‌ای.
عددnumberاعشار۶۴ = 0نتیجه‌ی عددی.
منطقیflagمنطقی = نادرستنتیجه‌ی منطقی.
encoding-xml-XPath.salam
واردسازی کدگذاری.اکس‌ام‌ال

تابع ریشه:
    ناپایا خ := اکس‌ام‌ال.بدون خطا()
    ناپایا س := اکس‌ام‌ال.تجزیه("<shop><item price=\"120\">چای</item><item price=\"80\">قند</item><item price=\"45\">نان</item></shop>"، خ)
    ر := اکس‌ام‌ال.گره سند(س)
    ناپایا ارزان := اکس‌ام‌ال.انتخاب(س، ر، "//item[@price < 100]"، خ)
    سرچاپ ارزان.شناسه‌ها.طول()
    هر گ در ارزان.شناسه‌ها:
        سرچاپ اکس‌ام‌ال.متن(س، گ)
    پایان
    اکس‌ام‌ال.آزادسازی فهرست(ارزان)
    سرچاپ اکس‌ام‌ال.انتخاب رشته(س، ر، "/shop/item[1]"، خ)، اکس‌ام‌ال.انتخاب عدد(س، ر، "sum(//item/@price)"، خ)، اکس‌ام‌ال.انتخاب منطقی(س، ر، "count(//item) = 3"، خ)
    ن := اکس‌ام‌ال.انتخاب نخستین(س، ر، "//item[last()]"، خ)
    سرچاپ اکس‌ام‌ال.نام گره(س، ن)، اکس‌ام‌ال.مقدار متنی گره(س، ن)
    ناپایا م := اکس‌ام‌ال.ارزیابی(س، ر، "//item/@price"، خ)
    سرچاپ م.نوع == اکس‌ام‌ال.مقدار مجموعه گره، م.گره‌ها.شناسه‌ها.طول()
    ش := م.گره‌ها.شناسه‌ها[۰]
    سرچاپ اکس‌ام‌ال.ارجاع ویژگی است(ش)، اکس‌ام‌ال.ویژگی ارجاع‌شده(س، ش).مقدار، اکس‌ام‌ال.ارجاع ویژگی است(اکس‌ام‌ال.ارجاع ویژگی(۰))
    اکس‌ام‌ال.آزادسازی مقدار(م)
    ع := اکس‌ام‌ال.ارزیابی(س، ر، "string-length('سلام')"، خ)
    سرچاپ ع.نوع == اکس‌ام‌ال.مقدار عدد، ع.عدد، اکس‌ام‌ال.مقدار رشته، اکس‌ام‌ال.مقدار منطقی
    _ := اکس‌ام‌ال.انتخاب(س، ر، "//item[@"، خ)
    سرچاپ خ.موفق
    اکس‌ام‌ال.آزادسازی(س)
پایان
خروجی2 قند نان چای 245 true item نان true 3 true 120 true true 4 1 3 false

ویژگی Attribute

ساختار ویژگی
یک ویژگی عنصر.
نامانگلیسیگونهتوضیح
عنصر مالکownerصحیح = -1شناسه‌ی عنصر.
نامnameرشته = ""نام کامل.
پیشوندprefixرشته = ""پیشوند.
نام محلیlocalرشته = ""نام بدون پیشوند.
نشانی فضای نامuriرشته = ""نشانی فضای نام.
مقدارvalueرشته = ""مقدار، با موجودیت‌های برگردانده.
خطlineصحیح = 0خط.
ستونcolصحیح = 0ستون.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

گره Node

ساختار گره
یک گره: عنصر، متن، توضیح و مانند آن.
نامانگلیسیگونهتوضیح
نوعkindصحیح = 0نوع گره؛ یکی از ثابت‌های نوع.
نامnameرشته = ""نام کامل با پیشوند.
پیشوندprefixرشته = ""پیشوند فضای نام.
نام محلیlocalرشته = ""نام بدون پیشوند.
نشانی فضای نامuriرشته = ""نشانی فضای نام.
مقدارvalueرشته = ""متن گره‌های متن، توضیح و مانند آن.
والدparentصحیح = -1شناسه‌ی والد؛ ‎-1 برای گره سند.
فرزندانchildrenوکتور<صحیح>شناسه‌ی فرزندان.
ویژگی‌هاattrsوکتور<صحیح>شماره‌ی ویژگی‌ها.
خطlineصحیح = 0شماره‌ی خط در متن.
ستونcolصحیح = 0شماره‌ی ستون در متن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

سند Document

ساختار سند
یک سند اکس‌ام‌ال خوانده‌شده یا ساخته‌شده. گره‌ها با شماره (شناسه) از آن گرفته می‌شوند.
نامانگلیسیگونهتوضیح
گره‌هاnodesوکتور<گره>همه‌ی گره‌ها؛ شناسه‌ی هر گره شماره‌ی آن در این وکتور است.
ویژگی‌هاattributesوکتور<ویژگی>همه‌ی ویژگی‌ها.
نسخهversionرشته = ""نسخه در اعلان <?xml ...?>.
کدگذاریencodingرشته = ""کدگذاری در اعلان.
مستقلstandaloneرشته = ""مقدار standalone در اعلان.
نوع سندdoctypeرشته = ""نام عنصر ریشه در <!DOCTYPE>.
شناسه عمومی نوع سندdoctype_publicرشته = ""شناسه‌ی عمومی DOCTYPE.
شناسه سیستمی نوع سندdoctype_systemرشته = ""شناسه‌ی سیستمی DOCTYPE.
زیرمجموعه داخلیinternal_subsetرشته = ""متن زیرمجموعه‌ی داخلی DOCTYPE، میان [ و ].
نام موجودیت‌هاentity_namesوکتور<رشته>نام موجودیت‌های تعریف‌شده.
مقدار موجودیت‌هاentity_valuesوکتور<رشته>مقدار موجودیت‌ها.
رشته‌های نگه‌داشتهownedوکتور<رشته>رشته‌هایی که سند نگه می‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

فهرست گره NodeList

ساختار فهرست گره
فهرستی از شناسه‌ی گره‌ها.
نامانگلیسیگونهتوضیح
شناسه‌هاitemsوکتور<صحیح>شناسه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

پایاها و متغیرها

سقف موجودیت‌ها Entity…

مقدارهای پیش‌فرض max_entity_depth و max_entity_expansion در گزینه‌های خواندن.
نامانگلیسیمقدار
سقف عمق موجودیتEntityDepthLimit32
سقف گسترش موجودیتEntityExpansionLimit262144

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نوع محتوای عنصر در DTD Content…

خالی (EMPTY)، دلخواه (ANY)، آمیخته‌ی متن و عنصر، یا فقط عنصرهای فرزند با مدل مشخص.
نامانگلیسیمقدار
محتوای خالیContentEmpty0
محتوای دلخواهContentAny1
محتوای آمیختهContentMixed2
محتوای فرزندانContentChildren3

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

گونه‌ی ویژگی در DTD Attr…

گونه‌ی اعلام‌شده برای ویژگی: متن، شناسه، ارجاع به شناسه، موجودیت، نام‌نشانه، فهرست مقدارها یا نشان‌گذاری.
نامانگلیسیمقدار
ویژگی متنیAttrCData0
ویژگی شناسهAttrId1
ویژگی ارجاع شناسهAttrIdRef2
ویژگی ارجاع‌های شناسهAttrIdRefs3
ویژگی موجودیتAttrEntity4
ویژگی موجودیت‌هاAttrEntities5
ویژگی نام‌نشانهAttrNmToken6
ویژگی نام‌نشانه‌هاAttrNmTokens7
ویژگی فهرستیAttrEnumeration8
ویژگی نشان‌گذاریAttrNotation9

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

حالت پیش‌فرض ویژگی در DTD Default…

الزامی (#REQUIRED)، اختیاری (#IMPLIED)، ثابت (#FIXED) یا دارای مقدار پیش‌فرض.
نامانگلیسیمقدار
پیش فرض الزامیDefaultRequired0
پیش فرض اختیاریDefaultImplied1
پیش فرض ثابتDefaultFixed2
پیش فرض با مقدارDefaultValue3

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

نوع نشانه‌ها XMLTok…

مقدار kind هر نشانه‌ی نشانه‌خوان. برچسب خودبسته یک نشانه‌ی آغاز و سپس یک نشانه‌ی پایان می‌دهد؛ XMLTokError رزرو شده و هنوز برگردانده نمی‌شود.
نامانگلیسیمقدار
نشانه آغاز عنصرXMLTokStartElement1
نشانه انتهای عنصرXMLTokEndElement2
نشانه متنXMLTokText3
نشانه توضیحXMLTokComment4
نشانه سی‌دیتاXMLTokCData5
نشانه اتمامXMLTokEOF6
نشانه خطاXMLTokError7

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

نوع نتیجه‌ی XPath Value…

مقدار فیلد kind در نتیجه‌ی ارزیابی.
نامانگلیسیمقدار
مقدار مجموعه گرهValueNodeSet0
مقدار رشتهValueString1
مقدار عددValueNumber2
مقدار منطقیValueBoolean3

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

نوع گره‌ها Kind…

مقدار نوع هر گره در سند.
نامانگلیسیمقدار
نوع سندKindDocument0
نوع عنصرKindElement1
نوع متنKindText2
نوع سی‌دیتاKindCData3
نوع توضیحKindComment4
نوع دستور پردازشKindProcessingInstruction5
نوع اعلان سندKindDoctype6

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نشانی فضای نام اکس‌ام‌ال XMLNamespaceURI

پایا نشانی فضای نام اکس‌ام‌ال: رشته = "http://www.w3.org/XML/1998/namespace"
نشانی فضای نام پیشوند xml.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نشانی فضای نام اکس‌ام‌ال‌ان‌اس XMLNSNamespaceURI

پایا نشانی فضای نام اکس‌ام‌ال‌ان‌اس: رشته = "http://www.w3.org/2000/xmlns/"
نشانی فضای نام xmlns.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

تابع‌ها

گزینه‌های نوشتن پیش فرض DefaultWriteOptions

تابع گزینه‌های نوشتن پیش فرض(): گزینه‌های نوشتن
گزینه‌های پیش‌فرض نوشتن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

نوشتن Write

تابع نوشتن(d: سند): رشته
سند را فشرده و بدون اعلان می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

نوشتن با تورفتگی WriteIndent

تابع نوشتن با تورفتگی(d: سند، unit: رشته): رشته
سند را با تورفتگی می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

نوشتن سفارشی WriteWith

تابع نوشتن سفارشی(d: سند، opts: گزینه‌های نوشتن): رشته
سند را با گزینه‌های داده‌شده می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

نوشتن گره WriteNode

تابع نوشتن گره(d: سند، id: صحیح): رشته
یک گره و نوادگانش را می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

نوشتن گره با تورفتگی WriteNodeIndent

تابع نوشتن گره با تورفتگی(d: سند، id: صحیح، unit: رشته): رشته
یک گره را با تورفتگی می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

نوشتن سند WriteDocument

تابع نوشتن سند(d: سند): رشته
سند را همراه با اعلان XML می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

شکل استاندارد Canonical

تابع شکل استاندارد(d: سند): رشته
شکل استاندارد سند (Canonical XML): ویژگی‌ها مرتب، عنصر خالی دوتایی، بی‌فاصله‌ی اضافه؛ برای مقایسه یا امضای دیجیتال.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

شکل استاندارد گره CanonicalNode

تابع شکل استاندارد گره(d: سند، id: صحیح): رشته
شکل استاندارد یک گره.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

گزینه‌های پیش فرض DefaultOptions

تابع گزینه‌های پیش فرض(): گزینه‌های تجزیه
گزینه‌های پیش‌فرض خواندن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

بدون خطا NoError

تابع بدون خطا(): خطای تجزیه
خطای خالی برای دادن به تابع‌های خواندن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

متن خطا ErrorText

تابع متن خطا(e: خطای تجزیه): رشته
خطا را به شکل «خط، ستون: پیام» می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

تجزیه سفارشی ParseWith

تابع تجزیه سفارشی(text: رشته، opts: گزینه‌های تجزیه، err &: خطای تجزیه): سند
متن را با گزینه‌های داده‌شده می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

تجزیه Parse

تابع تجزیه(text: رشته، err &: خطای تجزیه): سند
متن را می‌خواند؛ اگر اکس‌ام‌ال خوش‌ساخت نباشد، err.ok نادرست می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

خوش‌ساخت است WellFormed

تابع خوش‌ساخت است(text: رشته، err &: خطای تجزیه): منطقی
اگر متن خوش‌ساخت باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

تجزیه دی‌تی‌دی ParseDTD

تابع تجزیه دی‌تی‌دی(text: رشته): دی‌تی‌دی
متن DTD را می‌خواند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

آزادسازی دی‌تی‌دی FreeDTD

تابع آزادسازی دی‌تی‌دی(dtd &: دی‌تی‌دی)
حافظه‌ی DTD را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

آزادسازی گزارش FreeReport

تابع آزادسازی گزارش(r &: گزارش اعتبارسنجی)
حافظه‌ی گزارش را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

متن گزارش ReportText

تابع متن گزارش(r: گزارش اعتبارسنجی): رشته
همه‌ی موردهای نقض، هر کدام در یک خط.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

شمار عنصرهای اعلام‌شده DeclaredElementCount

تابع شمار عنصرهای اعلام‌شده(dtd: دی‌تی‌دی): صحیح
تعداد عنصرهای اعلام‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

شمار ویژگی‌های اعلام‌شده DeclaredAttributeCount

تابع شمار ویژگی‌های اعلام‌شده(dtd: دی‌تی‌دی): صحیح
تعداد ویژگی‌های اعلام‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

اعتبارسنجی Validate

تابع اعتبارسنجی(d: سند، dtd: دی‌تی‌دی): گزارش اعتبارسنجی
سند را با DTD داده‌شده اعتبارسنجی می‌کند: مدل محتوا، ویژگی‌های الزامی، مقدارهای مجاز و شناسه‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

اعتبارسنجی زیرمجموعه داخلی ValidateInternalSubset

تابع اعتبارسنجی زیرمجموعه داخلی(d: سند): گزارش اعتبارسنجی
سند را با DTD داخل DOCTYPE خودش اعتبارسنجی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

بررسی فضای نام CheckNamespaces

تابع بررسی فضای نام(d: سند): گزارش اعتبارسنجی
بررسی می‌کند همه‌ی پیشوندها تعریف شده باشند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

اعمال پیش فرض‌ها ApplyDefaults

تابع اعمال پیش فرض‌ها(d &: سند، dtd: دی‌تی‌دی): صحیح
مقدار پیش‌فرض ویژگی‌هایی را که نیامده‌اند اضافه می‌کند و تعدادشان را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam

بازگردانی موجودیت‌ها UnescapeEntities

تابع بازگردانی موجودیت‌ها(s: رشته): رشته
موجودیت‌ها و ارجاع‌های نویسه‌ای مثل &lt; و &#1587; را برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

اسکیپ متن EscapeText

تابع اسکیپ متن(s: رشته): رشته
نویسه‌های خاص را برای متن اسکیپ می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

اسکیپ ویژگی EscapeAttr

تابع اسکیپ ویژگی(s: رشته): رشته
نویسه‌های خاص را برای مقدار ویژگی، از جمله نقل‌قول، اسکیپ می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

نشانه‌خوان جدید NewXMLTokenizer

تابع نشانه‌خوان جدید(text: رشته): نشانه‌خوان اکس‌ام‌ال
نشانه‌خوان تازه روی متن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

نشانه بعدی NextToken

تابع نشانه بعدی(tz &: نشانه‌خوان اکس‌ام‌ال): نشانه اکس‌ام‌ال
نشانه‌ی بعدی؛ وقتی متن تمام شود نشانه اتمام. توضیح، CDATA و متن هر کدام نوع خودشان را دارند؛ <?...?> و <!DOCTYPE> رد می‌شوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

گره ساده جدید NewXMLNode

تابع گره ساده جدید(tag: رشته): گره ساده
گره ساده‌ی تازه با نام داده‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

پیدا شد Found

تابع پیدا شد(n: گره ساده): منطقی
اگر گره پیدا شده باشد (نام خالی نداشته باشد)، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

دارای ویژگی HasAttr

تابع دارای ویژگی(node: گره ساده، name: رشته): منطقی
اگر گره ساده این ویژگی را داشته باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

ویژگی گره Attr

تابع ویژگی گره(node: گره ساده، name: رشته): رشته
مقدار ویژگی گره ساده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

تنظیم ویژگی گره SetAttr

تابع تنظیم ویژگی گره(node &: گره ساده، name: رشته، value: رشته)
ویژگی گره ساده را تنظیم می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

افزودن گره فرزند AppendChild

تابع افزودن گره فرزند(node &: گره ساده، child: گره ساده)
فرزندی به گره ساده اضافه می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

فرزند Child

تابع فرزند(node: گره ساده، tag: رشته): گره ساده
نخستین فرزند با نام داده‌شده؛ اگر نباشد، گرهی که پیدا شد آن نادرست است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

فرزندان Children

تابع فرزندان(node: گره ساده، tag: رشته): فهرست گره ساده
همه‌ی فرزندان با نام داده‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

کدگشایی سخت گیرانه DecodeStrict

تابع کدگشایی سخت گیرانه(text: رشته، ok &: منطقی): گره ساده
متن را به گره ساده تبدیل می‌کند؛ اگر نادرست باشد، ok نادرست می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

کدگشایی Decode

تابع کدگشایی(text: رشته): گره ساده
متن را به گره ساده تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

معتبر Valid

تابع معتبر(text: رشته): منطقی
اگر متن اکس‌ام‌ال درستی باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

کدگذاری Encode

تابع کدگذاری(node: گره ساده): رشته
گره ساده را به متن تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

کدگذاری با تورفتگی EncodeIndent

تابع کدگذاری با تورفتگی(node: گره ساده، unit: رشته): رشته
گره ساده را با تورفتگی می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

کدگذاری با اعلان EncodeDeclaration

تابع کدگذاری با اعلان(node: گره ساده): رشته
گره ساده را همراه با اعلان XML می‌نویسد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

به مقدار ToValue

تابع به مقدار(node: گره ساده): value.Value
گره ساده را به مقدار تبدیل می‌کند؛ ویژگی‌ها با پیشوند @ و فرزندان هم‌نام به شکل آرایه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

از مقدار FromValue

تابع از مقدار(v: value.Value، rootTag: رشته): گره ساده
مقدار را با قاعده‌ی بالا به گره ساده با نام ریشه‌ی داده‌شده تبدیل می‌کند. عددها و مقدارهای منطقی به شکل متن نوشته می‌شوند و تهی عنصری خالی می‌شود.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam

ارزیابی Evaluate

تابع ارزیابی(d: سند، context: صحیح، expression: رشته، err &: خطای تجزیه): مقدار اکس‌پث
یک عبارت XPath 1.0 را از گره context ارزیابی می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

آزادسازی مقدار FreeValue

تابع آزادسازی مقدار(v &: مقدار اکس‌پث)
حافظه‌ی نتیجه را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

انتخاب Select

تابع انتخاب(d: سند، context: صحیح، expression: رشته، err &: خطای تجزیه): فهرست گره
گره‌هایی که عبارت انتخاب می‌کند، مثل //item[@price < 100].

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

انتخاب نخستین SelectFirst

تابع انتخاب نخستین(d: سند، context: صحیح، expression: رشته، err &: خطای تجزیه): صحیح
نخستین گره انتخاب‌شده؛ ‎-1 اگر نباشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

انتخاب رشته SelectString

تابع انتخاب رشته(d: سند، context: صحیح، expression: رشته، err &: خطای تجزیه): رشته
نتیجه را به رشته تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

انتخاب عدد SelectNumber

تابع انتخاب عدد(d: سند، context: صحیح، expression: رشته، err &: خطای تجزیه): اعشار۶۴
نتیجه را به عدد تبدیل می‌کند، مثل sum(//item/@price).

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

انتخاب منطقی SelectBoolean

تابع انتخاب منطقی(d: سند، context: صحیح، expression: رشته، err &: خطای تجزیه): منطقی
نتیجه را به منطقی تبدیل می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

ارجاع ویژگی است IsAttributeRef

تابع ارجاع ویژگی است(id: صحیح): منطقی
اگر شناسه‌ی برگشتی از XPath به یک ویژگی اشاره کند، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

ارجاع ویژگی AttributeRef

تابع ارجاع ویژگی(aid: صحیح): صحیح
شماره‌ی ویژگی را به شناسه‌ای تبدیل می‌کند که XPath برای ویژگی‌ها برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

ویژگی ارجاع‌شده ReferencedAttribute

تابع ویژگی ارجاع‌شده(d: سند، id: صحیح): ویژگی
ویژگی‌ای که شناسه‌ی XPath به آن اشاره می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

مقدار متنی گره StringValue

تابع مقدار متنی گره(d: سند، id: صحیح): رشته
مقدار رشته‌ای گره به تعریف XPath: متن همه‌ی نوادگان، یا مقدار ویژگی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

نام گره NodeName

تابع نام گره(d: سند، id: صحیح): رشته
نام گره یا ویژگی برای شناسه‌ی XPath.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam

سند جدید NewDocument

تابع سند جدید(): سند
سند خالی برای ساختن از صفر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

آزادسازی Free

تابع آزادسازی(d &: سند)
حافظه‌ی سند را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

آزادسازی فهرست FreeList

تابع آزادسازی فهرست(list &: فهرست گره)
حافظه‌ی فهرست را آزاد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

شمار گره‌ها NodeCount

تابع شمار گره‌ها(d: سند): صحیح
تعداد گره‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

گره سند DocumentNode

تابع گره سند(d: سند): صحیح
شناسه‌ی گره سند، که عنصر ریشه فرزند آن است.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

عنصر ریشه Root

تابع عنصر ریشه(d: سند): صحیح
شناسه‌ی عنصر ریشه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

وجود دارد Exists

تابع وجود دارد(d: سند، id: صحیح): منطقی
اگر شناسه به گرهی اشاره کند، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نوع Kind

تابع نوع(d: سند، id: صحیح): صحیح
نوع گره.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نام Name

تابع نام(d: سند، id: صحیح): رشته
نام کامل گره.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نام محلی LocalName

تابع نام محلی(d: سند، id: صحیح): رشته
نام بدون پیشوند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

پیشوند Prefix

تابع پیشوند(d: سند، id: صحیح): رشته
پیشوند فضای نام.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نشانی فضای نام NamespaceURI

تابع نشانی فضای نام(d: سند، id: صحیح): رشته
نشانی فضای نام گره.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

مقدار Value

تابع مقدار(d: سند، id: صحیح): رشته
متن گره متن یا توضیح؛ برای عنصر خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

والد Parent

تابع والد(d: سند، id: صحیح): صحیح
شناسه‌ی والد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

خط Line

تابع خط(d: سند، id: صحیح): صحیح
شماره‌ی خط گره در متن.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

ستون Column

تابع ستون(d: سند، id: صحیح): صحیح
شماره‌ی ستون گره.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

عنصر است IsElement

تابع عنصر است(d: سند، id: صحیح): منطقی
اگر گره عنصر باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

شمار فرزندان ChildCount

تابع شمار فرزندان(d: سند، id: صحیح): صحیح
تعداد فرزندان.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

فرزند شماره ChildAt

تابع فرزند شماره(d: سند، id: صحیح، index: صحیح): صحیح
شناسه‌ی فرزند شماره‌ی index.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

گره‌های فرزند ChildNodes

تابع گره‌های فرزند(d: سند، id: صحیح): فهرست گره
همه‌ی فرزندان، از جمله متن‌ها.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

عنصرها Elements

تابع عنصرها(d: سند، id: صحیح): فهرست گره
فرزندانی که عنصرند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

عنصرهای با نام ElementsNamed

تابع عنصرهای با نام(d: سند، id: صحیح، name: رشته): فهرست گره
فرزندان عنصر با نام داده‌شده.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نخستین عنصر با نام FirstElementNamed

تابع نخستین عنصر با نام(d: سند، id: صحیح، name: رشته): صحیح
نخستین فرزند با نام داده‌شده؛ ‎-1 اگر نباشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نوادگان Descendants

تابع نوادگان(d: سند، id: صحیح): فهرست گره
همه‌ی نوادگان، به ترتیب سند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

نیاکان Ancestors

تابع نیاکان(d: سند، id: صحیح): فهرست گره
والد، والدِ والد و تا گره سند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

گره هم‌سطح بعدی NextSibling

تابع گره هم‌سطح بعدی(d: سند، id: صحیح): صحیح
گره بعدی با همان والد؛ ‎-1 اگر نباشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

گره هم‌سطح قبلی PreviousSibling

تابع گره هم‌سطح قبلی(d: سند، id: صحیح): صحیح
گره قبلی با همان والد؛ ‎-1 اگر نباشد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

عمق Depth

تابع عمق(d: سند، id: صحیح): صحیح
عمق گره؛ عنصر ریشه ۱.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

شمار ویژگی‌ها AttributeCount

تابع شمار ویژگی‌ها(d: سند، id: صحیح): صحیح
تعداد ویژگی‌های عنصر.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

ویژگی شماره AttributeAt

تابع ویژگی شماره(d: سند، id: صحیح، index: صحیح): ویژگی
ویژگی شماره‌ی index.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

ویژگی دارد HasAttribute

تابع ویژگی دارد(d: سند، id: صحیح، name: رشته): منطقی
اگر عنصر این ویژگی را داشته باشد، درست برمی‌گرداند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

مقدار ویژگی AttributeValue

تابع مقدار ویژگی(d: سند، id: صحیح، name: رشته): رشته
مقدار ویژگی با نام کامل؛ اگر نباشد، رشته‌ی خالی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

مقدار ویژگی با فضای نام AttributeValueNS

تابع مقدار ویژگی با فضای نام(d: سند، id: صحیح، uri: رشته، local: رشته): رشته
مقدار ویژگی با نشانی فضای نام و نام محلی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

متن Text

تابع متن(d: سند، id: صحیح): رشته
همه‌ی متن درون عنصر و نوادگانش، پشت‌سرهم.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

متن مستقیم DirectText

تابع متن مستقیم(d: سند، id: صحیح): رشته
فقط متن فرزندان مستقیم، بدون متن عنصرهای درونی.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

مسیر Path

تابع مسیر(d: سند، id: صحیح): رشته
مسیر گره، مثل /library[1]/b:book[1].

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

شمار موجودیت‌ها EntityCount

تابع شمار موجودیت‌ها(d: سند): صحیح
تعداد موجودیت‌های تعریف‌شده در DOCTYPE.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

مقدار موجودیت EntityValue

تابع مقدار موجودیت(d: سند، name: رشته): رشته
مقدار یک موجودیت.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam

ساخت عنصر CreateElement

تابع ساخت عنصر(d &: سند، name: رشته): صحیح
عنصر تازه‌ای می‌سازد و شناسه‌اش را برمی‌گرداند؛ هنوز به جایی وصل نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

ساخت متن CreateText

تابع ساخت متن(d &: سند، text: رشته): صحیح
گره متن تازه‌ای می‌سازد و شناسه‌اش را برمی‌گرداند؛ هنوز به جایی وصل نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

ساخت سی‌دیتا CreateCData

تابع ساخت سی‌دیتا(d &: سند، text: رشته): صحیح
بخش CDATA تازه‌ای می‌سازد و شناسه‌اش را برمی‌گرداند؛ هنوز به جایی وصل نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

ساخت توضیح CreateComment

تابع ساخت توضیح(d &: سند، text: رشته): صحیح
توضیح تازه‌ای می‌سازد و شناسه‌اش را برمی‌گرداند؛ هنوز به جایی وصل نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

ساخت دستور پردازش CreateProcessingInstruction

تابع ساخت دستور پردازش(d &: سند، target: رشته، data: رشته): صحیح
دستور پردازش تازه‌ای می‌سازد و شناسه‌اش را برمی‌گرداند؛ هنوز به جایی وصل نیست.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

افزودن فرزند Append

تابع افزودن فرزند(d &: سند، parent: صحیح، child: صحیح)
گره را آخرین فرزند والد می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

درج پیش از InsertBefore

تابع درج پیش از(d &: سند، parent: صحیح، child: صحیح، before: صحیح)
گره را پیش از فرزند before می‌گذارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

حذف فرزند RemoveChild

تابع حذف فرزند(d &: سند، parent: صحیح، child: صحیح): منطقی
فرزند را جدا می‌کند و می‌گوید پیدا شد یا نه.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

تنظیم ویژگی SetAttribute

تابع تنظیم ویژگی(d &: سند، id: صحیح، name: رشته، value: رشته)
ویژگی را تنظیم یا اضافه می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

حذف ویژگی RemoveAttribute

تابع حذف ویژگی(d &: سند، id: صحیح، name: رشته): منطقی
ویژگی را برمی‌دارد.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam

تنظیم متن SetText

تابع تنظیم متن(d &: سند، id: صحیح، text: رشته)
همه‌ی فرزندان عنصر را با یک گره متن جایگزین می‌کند.

نمونه‌ی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam