اکسامال 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 یعنی عنوان همان مورد.
واردسازی کدگذاری.اکسامال
تابع ریشه:
خوراک := `<?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"، خطا) + ">"
پایان
اکسامال.آزادسازی فهرست(آموزشی)
اکسامال.آزادسازی(سند)
پایانپالایهی [category = 'tutorial'] فقط موردهایی را نگه میدارد که عنصر فرزندشان همین متن را دارد. پس از کار، فهرست گرهها را با آزادسازی فهرست و سند را با آزادسازی آزاد کنید.
راهنما: فضای نام در خوراک Atom
خوراکهای Atom، SVG، SOAP و پروندههای اداری عنصرهایشان را در فضای نام میگذارند و اغلب چند فضای نام را با هم. این خوراک Atom را فضای نام پیشفرض گرفته و Media RSS را زیر پیشوند m آورده است. برنامه نشان میدهد XPath در این بسته با نامها چطور رفتار میکند، و پرسشی که هر پیشوندی را که ناشر انتخاب کرده باشد میپذیرد.
واردسازی کدگذاری.اکسامال
تابع ریشه:
خوراک := `<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")
پایان
اکسامال.آزادسازی فهرست(تصویرها)
ریشه سند := اکسامال.عنصر ریشه(سند)
سرچاپ "فضای نام ریشه:"، اکسامال.نشانی فضای نام(سند، ریشه سند)
اکسامال.آزادسازی(سند)
پایان//entry جور درمیآید چون مدخلها پیشوند ندارند و //m:thumbnail چون سند اتفاقاً m نوشته است. خوراکی که به جایش media:thumbnail بنویسد پرسش دوم را خراب میکند، ولی آزمون local-name() و namespace-uri() همچنان کار میکند. بیرون از XPath، نام محلی، پیشوند و نشانی فضای نام بخشهای نام هر گره را میدهند و مقدار ویژگی با فضای نام ویژگیای را که فضای نام دارد میخواند.
راهنما: ساختن نقشهی پایگاه
برای نوشتن اکسامال، سند را گره به گره با ساخت عنصر، ساخت متن و افزودن فرزند بسازید و سپس بنویسید. یک تابع کمکی کوچک برای هر عنصر تکراری کد را کوتاه نگه میدارد. نوشتن سفارشی با تنظیم declaration و indent پروندهای آماده برای sitemap.xml میسازد.
واردسازی کدگذاری.اکسامال
تابع افزودن نشانی(سند &: اکسامال.سند، پدر: صحیح، جا: رشته، تغییر: رشته):
ن := اکسامال.ساخت عنصر(سند، "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")
ناپایا گزینهها := اکسامال.گزینههای نوشتن پیش فرض()
گزینهها.اعلان = درست
گزینهها.تورفتگی = " "
چاپ اکسامال.نوشتن سفارشی(سند، گزینهها)
اکسامال.آزادسازی(سند)
پایانمتن هنگام نوشتن گریزانده میشود، پس & در نشانی دوم به شکل & نوشته شده، همانطور که اکسامال میخواهد. با ساختن سند به این روش هیچوقت لازم نیست چیزی را با دست بگریزانید.
راهنما: یک پیکربندی کوچک با گرههای ساده
برای پروندهای کوتاه که یک بار خوانده میشود رابط ساده کافی است: کدگشایی سخت گیرانه ریشه را به شکل یک ساختار معمولی میدهد، فرزند و فرزندان عنصرها را با نام پیدا میکنند و ویژگی گره یک ویژگی را میخواند. پیدا شد میگوید فرزند چیزی یافته یا نه و دارای ویژگی اجازه میدهد ویژگی مقدار پیشفرض داشته باشد.
واردسازی کدگذاری.اکسامال
تابع ریشه:
متن := `<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"))
پایانراهنما: پیمودن خوراک کالا با نشانهخوان
فهرست قیمتها و خروجی کاتالوگها ممکن است صدها هزار رکورد داشته باشند و اغلب فقط چند فیلد از آنها لازم است. نشانهخوان یک بار از روی متن میگذرد و درختی نمیسازد، پس حافظه به اندازهی خود متن میماند. کمی وضعیت نگه دارید، اینجا اینکه درون کدام کالا هستید و آیا درون <name> هستید، و به نشانههایی که برایتان مهماند واکنش نشان دهید.
واردسازی کدگذاری.اکسامال
واردسازی رشته
تابع ریشه:
خوراک := `<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 & lid</name><price>21.00</price></product>
</products>`
ناپایا خوان := اکسامال.نشانهخوان جدید(خوراک)
ناپایا کد کالا := ""
ناپایا درون نام := نادرست
ناپایا کالاها := ۰
ناپایا ناموجود := ۰
ناپایا تمام := نادرست
تا وارونه تمام:
ن := اکسامال.نشانه بعدی(خوان)
اگر ن.نوع == اکسامال.نشانه اتمام:
تمام = درست
وگرنه ن.نوع == اکسامال.نشانه آغاز عنصر و ن.نام عنصر == "product":
کالاها += ۱
کد کالا = ن.ویژگیها.بگیر("sku")
اگر ن.ویژگیها.بگیر("stock") == "0": ناموجود += ۱ پایان
وگرنه ن.نوع == اکسامال.نشانه آغاز عنصر و ن.نام عنصر == "name":
درون نام = درست
وگرنه ن.نوع == اکسامال.نشانه انتهای عنصر و ن.نام عنصر == "name":
درون نام = نادرست
وگرنه ن.نوع == اکسامال.نشانه متن و درون نام:
سرچاپ کد کالا، "یعنی"، رشته.پیرایش(ن.متن)
پایان
پایان
سرچاپ کالاها، "کالا،"، ناموجود، "ناموجود"
پایانویژگیهای برچسب آغاز در tok.attrs میرسند و موجودیتهای متن کدگشایی میشوند، پس & به شکل & درمیآید. نشانههای متن فاصلههای میان برچسبها را هم دارند؛ برای همین برنامه نام را پیرایش میکند و متن بیرون از <name> را نادیده میگیرد. برچسب خودبستهای مثل <br/> یک نشانهی آغاز و پشت سرش یک نشانهی پایان میدهد.
راهنما: گزارش اکسامال خراب
اکسامال سختگیر است: یک ریشه، هر برچسب به ترتیب بسته شود و هر & بخشی از یک موجودیت باشد. تجزیه در نخستین مشکل میایستد و متن خطا سطر، ستون و دلیلی خوانا میدهد که میتوان به نویسندهی پرونده نشان داد. خوشساخت است فقط بله یا نه میگوید.
واردسازی کدگذاری.اکسامال
تابع بررسی(برچسب: رشته، متن: رشته):
ناپایا خطا := اکسامال.بدون خطا()
ناپایا سند := اکسامال.تجزیه(متن، خطا)
اگر خطا.موفق:
سرچاپ برچسب، "درست"
وگرنه:
سرچاپ برچسب، اکسامال.متن خطا(خطا)
پایان
اکسامال.آزادسازی(سند)
پایان
تابع ریشه:
بررسی("درست: "، "<a><b>1</b></a>")
بررسی("ناجور: "، "<a>\n <b>1</a>")
بررسی("دو ریشه: "، "<a/><b/>")
بررسی("موجودیت بد: "، "<a>&nope;</a>")
بررسی("& بیگریز: "، "<a>salt & pepper</a>")
ناپایا خطا := اکسامال.بدون خطا()
سرچاپ "بررسی سریع:"، اکسامال.خوشساخت است("<x/>"، خطا)، اکسامال.خوشساخت است("<x>"، خطا)
سرچاپ "متن گریزانده:"، اکسامال.اسکیپ متن("salt & 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 | منطقی = نادرست | خط تازه در مقدار ویژگی به شکل نوشته شود. |
واردسازی کدگذاری.اکسامال
تابع ریشه:
ناپایا س := اکسامال.سند جدید()
ریشهی سند := اکسامال.ساخت عنصر(س، "note")
اکسامال.افزودن فرزند(س، اکسامال.گره سند(س)، ریشهی سند)
اکسامال.تنظیم ویژگی(س، ریشهی سند، "id"، "7")
اکسامال.تنظیم ویژگی(س، ریشهی سند، "draft"، "yes")
به := اکسامال.ساخت عنصر(س، "to")
اکسامال.افزودن فرزند(س، ریشهی سند، به)
اکسامال.افزودن فرزند(س، به، اکسامال.ساخت متن(س، "مریم & رضا"))
بدنه := اکسامال.ساخت عنصر(س، "body")
اکسامال.افزودن فرزند(س، ریشهی سند، بدنه)
اکسامال.افزودن فرزند(س، بدنه، اکسامال.ساخت سیدیتا(س، "<b>پررنگ</b>"))
اکسامال.درج پیش از(س، ریشهی سند، اکسامال.ساخت توضیح(س، "گیرنده")، به)
اکسامال.افزودن فرزند(س، اکسامال.گره سند(س)، اکسامال.ساخت دستور پردازش(س، "app"، "v=1"))
سرچاپ اکسامال.نوشتن(س)
سرچاپ اکسامال.حذف ویژگی(س، ریشهی سند، "draft")، اکسامال.حذف فرزند(س، ریشهی سند، بدنه)
اکسامال.تنظیم متن(س، به، "همه")
سرچاپ اکسامال.نوشتن با تورفتگی(س، " ")
سرچاپ اکسامال.نوشتن گره(س، به)، اکسامال.نوشتن گره با تورفتگی(س، به، "\t")
ناپایا گ := اکسامال.گزینههای نوشتن پیش فرض()
گ.اعلان = درست
گ.عنصر خالی جفتی = درست
سرچاپ اکسامال.نوشتن سفارشی(س، گ)
سرچاپ اکسامال.نوشتن سند(س)
ناپایا خ := اکسامال.بدون خطا()
ناپایا د := اکسامال.تجزیه("<r b=\"2\" a=\"1\"><x/></r>"، خ)
سرچاپ اکسامال.شکل استاندارد(د)، اکسامال.شکل استاندارد گره(د، اکسامال.فرزند شماره(د، اکسامال.عنصر ریشه(د)، ۰))
اکسامال.آزادسازی(د)
اکسامال.آزادسازی(س)
پایانخطای تجزیه ParseError
ساختار خطای تجزیه| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| موفق | ok | منطقی = درست | آیا خواندن موفق بود. |
| پیام | message | رشته = "" | پیام خطا. |
| خط | line | صحیح = 0 | خط خطا. |
| ستون | col | صحیح = 0 | ستون خطا. |
| جابجایی | offset | صحیح = 0 | جای خطا بر حسب بایت. |
واردسازی کدگذاری.اکسامال
تابع ریشه:
متن := "<?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")
سرچاپ اکسامال.سقف عمق موجودیت، اکسامال.سقف گسترش موجودیت، گ.بیشترین عمق
اکسامال.آزادسازی(د)
پایانگزینههای تجزیه ParseOptions
ساختار گزینههای تجزیه| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| حفظ فاصلهها | preserve_whitespace | منطقی = نادرست | گرههای متنی که فقط فاصلهاند نگه داشته شوند. |
| نگهداشتن توضیحها | keep_comments | منطقی = درست | توضیحها نگه داشته شوند. |
| نگهداشتن دستورها | keep_instructions | منطقی = درست | دستورهای پردازش نگه داشته شوند. |
| فضای نامها | namespaces | منطقی = درست | فضای نامها حل شوند. |
| گسترش موجودیتها | expand_entities | منطقی = درست | موجودیتها با مقدارشان جایگزین شوند. |
| بیشترین عمق | max_depth | صحیح = 1024 | بیشترین عمق عنصرها. |
| بیشترین عمق موجودیت | max_entity_depth | صحیح | بیشترین عمق موجودیتهای تودرتو. |
| بیشترین گسترش موجودیت | max_entity_expansion | صحیح | بیشترین طول متن پس از گسترش موجودیتها؛ در برابر حملهی «بمب موجودیت». |
نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam
اعلان عنصر ElementDecl
ساختار اعلان عنصر| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| نام | name | رشته = "" | نام عنصر. |
| محتوا | content | صحیح = 1 | نوع محتوا؛ یکی از ثابتهای محتوا. |
| مدل | model | رشته = "" | مدل محتوا به شکل متن، مثل (to, body). |
| ریشه | root | صحیح = -1 | ریشهی درخت مدل. |
| آمیخته | mixed | وکتور<رشته> | نام عنصرهای مجاز در محتوای آمیخته. |
واردسازی کدگذاری.اکسامال
تابع ریشه:
د := اکسامال.تجزیه دیتیدی("<!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>"، خ)
ناپایا گ۴ := اکسامال.بررسی فضای نام(فضا)
سرچاپ گ۴.معتبر
اکسامال.آزادسازی گزارش(گ۴)
ناپایا د۲ := د
اکسامال.آزادسازی دیتیدی(د۲)
اکسامال.آزادسازی(خوب)
اکسامال.آزادسازی(بد)
اکسامال.آزادسازی(درونی)
اکسامال.آزادسازی(فضا)
پایاناعلان ویژگی AttrDecl
ساختار اعلان ویژگی| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| عنصر | 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 | رشته = "" | متن عنصر. |
واردسازی کدگذاری.اکسامال
واردسازی کدگذاری.مقدار
تابع ریشه:
ن := اکسامال.کدگشایی("<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"`)، اکسامال.بازگردانی موجودیتها("<p> & س")
ناپایا خوان := اکسامال.نشانهخوان جدید("<a x=\"1\">سلام<!--c--></a>")
تا درست:
ن۲ := اکسامال.نشانه بعدی(خوان)
اگر ن۲.نوع == اکسامال.نشانه اتمام یا ن۲.نوع == اکسامال.نشانه خطا:
بشکن
پایان
سرچاپ ن۲.نوع، ن۲.نام عنصر، ن۲.متن
پایان
سرچاپ اکسامال.نشانه آغاز عنصر، اکسامال.نشانه انتهای عنصر، اکسامال.نشانه متن، اکسامال.نشانه توضیح، اکسامال.نشانه سیدیتا
پایانفهرست گره ساده 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
ساختار مقدار اکسپث| نام | انگلیسی | گونه | توضیح |
|---|---|---|---|
| نوع | kind | صحیح = 0 | نوع نتیجه؛ یکی از ثابتهای مقدار. |
| گرهها | nodes | فهرست گره | گرهها، اگر نتیجه مجموعهی گره باشد. |
| متن | text | رشته = "" | نتیجهی رشتهای. |
| عدد | number | اعشار۶۴ = 0 | نتیجهی عددی. |
| منطقی | flag | منطقی = نادرست | نتیجهی منطقی. |
واردسازی کدگذاری.اکسامال
تابع ریشه:
ناپایا خ := اکسامال.بدون خطا()
ناپایا س := اکسامال.تجزیه("<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[@"، خ)
سرچاپ خ.موفق
اکسامال.آزادسازی(س)
پایانویژگی 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 در گزینههای خواندن.| نام | انگلیسی | مقدار |
|---|---|---|
| سقف عمق موجودیت | EntityDepthLimit | 32 |
| سقف گسترش موجودیت | EntityExpansionLimit | 262144 |
نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam
نوع محتوای عنصر در DTD Content…
EMPTY)، دلخواه (ANY)، آمیختهی متن و عنصر، یا فقط عنصرهای فرزند با مدل مشخص.| نام | انگلیسی | مقدار |
|---|---|---|
| محتوای خالی | ContentEmpty | 0 |
| محتوای دلخواه | ContentAny | 1 |
| محتوای آمیخته | ContentMixed | 2 |
| محتوای فرزندان | ContentChildren | 3 |
نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
گونهی ویژگی در DTD Attr…
| نام | انگلیسی | مقدار |
|---|---|---|
| ویژگی متنی | AttrCData | 0 |
| ویژگی شناسه | AttrId | 1 |
| ویژگی ارجاع شناسه | AttrIdRef | 2 |
| ویژگی ارجاعهای شناسه | AttrIdRefs | 3 |
| ویژگی موجودیت | AttrEntity | 4 |
| ویژگی موجودیتها | AttrEntities | 5 |
| ویژگی نامنشانه | AttrNmToken | 6 |
| ویژگی نامنشانهها | AttrNmTokens | 7 |
| ویژگی فهرستی | AttrEnumeration | 8 |
| ویژگی نشانگذاری | AttrNotation | 9 |
نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
حالت پیشفرض ویژگی در DTD Default…
#REQUIRED)، اختیاری (#IMPLIED)، ثابت (#FIXED) یا دارای مقدار پیشفرض.| نام | انگلیسی | مقدار |
|---|---|---|
| پیش فرض الزامی | DefaultRequired | 0 |
| پیش فرض اختیاری | DefaultImplied | 1 |
| پیش فرض ثابت | DefaultFixed | 2 |
| پیش فرض با مقدار | DefaultValue | 3 |
نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
نوع نشانهها XMLTok…
kind هر نشانهی نشانهخوان. برچسب خودبسته یک نشانهی آغاز و سپس یک نشانهی پایان میدهد؛ XMLTokError رزرو شده و هنوز برگردانده نمیشود.| نام | انگلیسی | مقدار |
|---|---|---|
| نشانه آغاز عنصر | XMLTokStartElement | 1 |
| نشانه انتهای عنصر | XMLTokEndElement | 2 |
| نشانه متن | XMLTokText | 3 |
| نشانه توضیح | XMLTokComment | 4 |
| نشانه سیدیتا | XMLTokCData | 5 |
| نشانه اتمام | XMLTokEOF | 6 |
| نشانه خطا | XMLTokError | 7 |
نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Simple.salam
نوع نتیجهی XPath Value…
kind در نتیجهی ارزیابی.| نام | انگلیسی | مقدار |
|---|---|---|
| مقدار مجموعه گره | ValueNodeSet | 0 |
| مقدار رشته | ValueString | 1 |
| مقدار عدد | ValueNumber | 2 |
| مقدار منطقی | ValueBoolean | 3 |
نمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam
نوع گرهها Kind…
نوع هر گره در سند.| نام | انگلیسی | مقدار |
|---|---|---|
| نوع سند | KindDocument | 0 |
| نوع عنصر | KindElement | 1 |
| نوع متن | KindText | 2 |
| نوع سیدیتا | KindCData | 3 |
| نوع توضیح | KindComment | 4 |
| نوع دستور پردازش | KindProcessingInstruction | 5 |
| نوع اعلان سند | KindDoctype | 6 |
نمونهی این مورد همراه با موارد بالاتر آمده است: 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: سند): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Build.salam
شکل استاندارد Canonical
تابع شکل استاندارد(d: سند): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: 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: رشته): دیتیدینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
آزادسازی دیتیدی FreeDTD
تابع آزادسازی دیتیدی(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: دیتیدی): گزارش اعتبارسنجینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
اعتبارسنجی زیرمجموعه داخلی ValidateInternalSubset
تابع اعتبارسنجی زیرمجموعه داخلی(d: سند): گزارش اعتبارسنجینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
بررسی فضای نام CheckNamespaces
تابع بررسی فضای نام(d: سند): گزارش اعتبارسنجینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
اعمال پیش فرضها ApplyDefaults
تابع اعمال پیش فرضها(d &: سند، dtd: دیتیدی): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-DTD.salam
بازگردانی موجودیتها UnescapeEntities
تابع بازگردانی موجودیتها(s: رشته): رشته< و س را برمیگرداند.نمونهی این مورد همراه با موارد بالاتر آمده است: 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: گره ساده): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: 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 &: خطای تجزیه): مقدار اکسپث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 &: خطای تجزیه): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: 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: صحیح): منطقینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam
ارجاع ویژگی AttributeRef
تابع ارجاع ویژگی(aid: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam
ویژگی ارجاعشده ReferencedAttribute
تابع ویژگی ارجاعشده(d: سند، id: صحیح): ویژگینمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam
مقدار متنی گره StringValue
تابع مقدار متنی گره(d: سند، id: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-XPath.salam
نام گره NodeName
تابع نام گره(d: سند، id: صحیح): رشتهنمونهی این مورد همراه با موارد بالاتر آمده است: 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: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam
نوادگان Descendants
تابع نوادگان(d: سند، id: صحیح): فهرست گرهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam
نیاکان Ancestors
تابع نیاکان(d: سند، id: صحیح): فهرست گرهنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam
گره همسطح بعدی NextSibling
تابع گره همسطح بعدی(d: سند، id: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: encoding-xml-Parse.salam
گره همسطح قبلی PreviousSibling
تابع گره همسطح قبلی(d: سند، id: صحیح): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: 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: سند): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: 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: رشته): صحیحنمونهی این مورد همراه با موارد بالاتر آمده است: 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