xmllint - ابزار
خط فرمان XML
xmllint [--version | --debug |
--quiet | --shell |
--xpath "XPath_expression" |
--xpath0 "XPath_expression" |
--copy | --recover | --huge | --nocompact |
--nodefdtd | --nodict | --noenc | --noent |
--nofixup-base-uris | --noout | --nonet |
--path "PATH(S)" |
--load-trace | --valid | --postvalid |
--dtdvalid URL |
--dtdvalidfpi FPI | --timing |
--output FILE | --repeat |
--insert | --strict-namespace | --compress |
--html | --xmlout | --push | --memory |
--max-ampl INTEGER |
--maxmem NBBYTES | --nowarning |
--noblanks | --nocdata | --format |
--pretty INTEGER |
--encode ENCODING | --dropdtd |
--nsclean | --catalogs | --nocatalogs | --auto |
--xinclude | --noxincludenode | --loaddtd |
--dtdattr | --stream | --walker |
--pattern PATTERNVALUE |
--relaxng SCHEMA |
--schema SCHEMA |
--schematron SCHEMA | --c14n |
--c14n11 | --exc-c14n | --pedantic | --sax |
--sax1 | --oldxml10] {XML-FILE(S)... | -}
برنامهٔ
xmllint یک یا چند
فایل XML را که
در خط فرمان
به عنوان XML-FILE
مشخص
شدهاند (یا
در صورتی که
نام فایل
دادهشده -
باشد، از
ورودی
استاندارد)
تجزیه
میکند. این
برنامه
بسته به
گزینههای
انتخابشده،
انواع
مختلفی از
خروجی را
چاپ میکند.
این ابزار
برای تشخیص
خطاها هم در
کد XML و هم در
خودِ
تجزیهکنندهٔ
XML مفید است.
xmllint بخشی از
کتابخانهٔ
libxml2 است.
گزینههای
فعالکنندهٔ
اعتبارسنجی.
--dtdvalid URL
استفاده
از DTD
مشخصشده
با یک URL برای
اعتبارسنجی.
--dtdvalidfpi FPI
استفاده
از DTD
مشخصشده
توسط یک
شناسهٔ
رسمی عمومی
(Formal Public Identifier یا FPI)
برای
اعتبارسنجی؛
توجه داشته
باشید که
این گزینه
برای
کارکرد به
کاتالوگی
نیاز دارد
که آن
شناسهٔ
رسمی عمومی
را صادر
کرده باشد.
--relaxng SCHEMA
استفاده
از فایل RelaxNG به
نام SCHEMA برای
اعتبارسنجی.
--schema SCHEMA
استفاده
از یک فایل W3C XML
Schema به نام SCHEMA
برای
اعتبارسنجی.
--schematron SCHEMA
استفاده
از یک فایل Schematron
به نام SCHEMA
برای
اعتبارسنجی.
--valid
بررسی
اینکه آیا
سند،
نمونهای
معتبر از
تعریف نوع
سند (DTD)
گنجاندهشده
است یا خیر.
همچنین
میتوان با
استفاده از
گزینهٔ --dtdvalid
در خط فرمان
یک DTD را برای
اعتبارسنجی
در برابر آن
تعیین کرد.
به طور
پیشفرض،
xmllint بررسی
میکند که
آیا سند
خوشساخت (well-formed)
هست یا خیر.
--strict-namespace
در صورتی
که سند
خوشساخت
باشد، اما
دارای
خطاهای
فضای نام
باشد، یک
خطا
بازمیگرداند.
این گزینه
خوشساختی
فضای نام را
اجباری
میکند.
گزینههای
زیر
تنظیمات
مربوط به
تجزیهکننده
را اعمال
میکنند.
--dtdattr
دریافت DTD
خارجی و پر
کردن درخت
با
ویژگیهای
موروثی.
شامل
گزینهٔ --loaddtd
نیز
میشود.
--huge
نادیده
گرفتن برخی
از
محدودیتهای
سختکدشدهٔ
تجزیهکننده.
--loaddtd
دریافت
یک DTD خارجی و
موجودیتهای
پارامتر
خارجی.
--max-ampl INTEGER
تنظیم
حداکثر
ضریب تقویت
که از گسترش
نمایی
موجودیتها
(حملهٔ "billion laughs")
محافظت
میکند.
مقدار
پیشفرض ۵
است. اسنادی
که به طور
گسترده از
گسترش
موجودیتها
استفاده
میکنند
ممکن است به
مقدار
بالاتری
نیاز داشته
باشند.
--noblanks
حذف
فاصلههای
خالی «قابل
چشمپوشی».
این گزینه
غیرقابل
اعتماد است
و نباید
استفاده
شود.
--nocatalogs
استفاده
نکردن از
هیچ
کاتالوگی.
--nocdata
جایگزینی
بخشهای CDATA
با گرههای
متنی
معادل.
--nodefdtd
عدم
تنظیم نوع
سند (doctype)
پیشفرض HTML
(گزینهٔ
تجزیهکننده
HTML_PARSE_NODEFDTD).
--noenc
نادیده
گرفتن
اعلان
کدگذاری
(گزینهٔ
تجزیهکننده
XML_PARSE_IGNORE_ENC).
--noent
جایگزینی
مقادیر
موجودیتها
به جای
ارجاعات
موجودیت. به
طور
پیشفرض،
xmllint ارجاعات
موجودیت را
دستنخورده
باقی
میگذارد.
این گزینه
بارگذاری
DTDها و
موجودیتهای
خارجی را
فعال
میکند.
--nofixup-base-uris
اصلاح
نکردن URIهای xml:base
هنگام
پردازش XIncludeها
(گزینهٔ
تجزیهکننده
XML_PARSE_NOBASEFIX).
--nonet
استفاده
نکردن از
اینترنت
برای
دریافت DTDها
یا
موجودیتها.
در libxml2 نسخه 2.15
یا بالاتر
تأثیری
ندارد.
--nowarning
عدم صدور
هشدارهای
تجزیهکننده
و/یا
اعتبارسنج.
--nsclean
حذف
اعلانهای
اضافی و
تکراری
فضای نام.
--oldxml10
استفاده
از قواعد
تجزیهٔ
منسوخشده
مربوط به
پیش از
نگارش پنجم XML
1.0.
--pedantic
فعالسازی
هشدارهای
اضافی.
--recover
خروجی
دادن هر بخش
قابل تجزیه
از یک سند
نامعتبر.
رفتار دقیق
مشخص نشده
است.
استفاده از
این گزینه
توصیه
نمیشود.
--xinclude
انجام
پردازش XInclude.
گزینههایی
که در
دستهبندی
دیگری قرار
نمیگیرند.
--catalogs
استفاده
از
کاتالوگ(های)
SGML از SGML_CATALOG_FILES.
کاتالوگهای
XML به طور
پیشفرض
بارگذاری
میشوند.
--dropdtd
حذف DTD پس
از تجزیه.
--html
استفاده
از
تجزیهکنندهٔ
HTML.
--path "PATH(S)"
استفاده
از فهرست
مسیرهای
سیستمفایل
(جداشده با
فاصله یا
دونقطه)
مشخصشده
با PATHS برای
بارگذاری
DTDها یا
موجودیتها.
فهرستهای
جداشده با
فاصله را
درون علامت
نقلقول
قرار دهید.
--quiet
پیامهای
اطلاعرسانی
را در stderr چاپ
نکند.
--sax
چاپ
فراخوانیهای
بازگشتی (callbacks)
ابزار SAX برای
اشکالزدایی.
در صورت
استفاده با
--noout
میتواند
برای
اعتبارسنجی
جریانی DTD و
طرحواره
استفاده
شود.
--shell
اجرای یک
پوستهٔ
ناوبری.
جزئیات
دستورهای
موجود در
حالت پوسته
در ادامه
آمده است
(بخش
«دستورهای
پوسته (SHELL COMMANDS)»
را ببینید).
--stream
استفاده
از API جریانی -
کاربردی در
ترکیب با
گزینههای
--relaxng یا --valid
برای
اعتبارسنجی
فایلهایی
که برای
نگهداری در
حافظه بیش
از حد بزرگ
هستند.
--version
نمایش
نسخهٔ libxml2
استفادهشده.
گزینههای
کنترلکنندهٔ
خروجی. به جز
--noout این
گزینهها
در حالت SAX یا
stream تأثیری
ندارند.
--compress
روشن
کردن
فشردهسازی
خروجی با
gzip(1).
--c14n, --c14n11, --exc-c14n
استفاده
از
قانونسازی
(C14N) کنسرسیوم W3C
XML برای
سریالسازی
نتیجهٔ
تجزیه در stdout.
این گزینه
توضیحات (comments)
را در نتیجه
حفظ
میکند.
--encode ENCODING
خروجی
دادن با
کدگذاری
تعیینشده.
توجه داشته
باشید که
این گزینه
برای کل سند
عمل
میکند، نه
برای قطعات
یا نتیجهٔ
حاصل از
پرسوجوهای
XPath.
--format
قالببندی
مجدد و
تورفتگیگذاری
خروجی.
متغیر
محیطی
XMLLINT_INDENT
تورفتگی را
کنترل
میکند.
مقدار
پیشفرض دو
فاصله (" ")
است.
بهویژه
در غیاب یک
DTD، این
ویژگی هرگز
به صورت
قابل
اعتماد کار
نکرده و از
اساس معیوب
است.
--noout
جلوگیری
از چاپ
خروجی. به
طور
پیشفرض،
xmllint درخت
نتیجه را
خروجی
میدهد.
--output FILE
تعریف یک
مسیر فایل
که xmllint
نتیجهٔ
تجزیه را در
آن ذخیره
میکند.
معمولاً
برنامهها
درختی
میسازند و
آن را در stdout
ذخیره
میکنند؛
با این
گزینه
نمونهٔ XML
حاصل در یک
فایل ذخیره
خواهد شد.
--pretty INTEGER
مقدار 0
به معنای
بدون
قالببندی،
1 به معنای XML_SAVE_FORMAT
(همانند --format) و 2
به معنای XML_SAVE_WSNONSIG
است.
--xmlout
در ترکیب
با --html
استفاده
میشود.
معمولاً
هنگام
تجزیهٔ HTML سند
با
سریالساز HTML
ذخیره
میشود،
اما با این
گزینه سند
حاصل با
سریالساز XML
ذخیره
خواهد شد.
این گزینه
در درجه اول
برای تولید
XHTML از ورودی HTML
استفاده
میشود.
از
گزینههای
زیر
میتوان
برای
اشکالزدایی
کتابخانهٔ
libxml2 استفاده
کرد. رفتار
این
گزینهها
ممکن است
بدون اطلاع
قبلی تغییر
کند.
--auto
تولید یک
سند کوچک
برای مقاصد
آزمایشی.
--copy
آزمودن
پیادهسازی
کپی داخلی.
--debug
تجزیهٔ
یک فایل و
خروجی دادن
یک درخت
حاشیهنویسیشده
از نسخهٔ
درونحافظهای
سند.
--insert
آزمودن
درجهای
معتبر.
منسوخشده:
این قابلیت
حذف خواهد
شد.
--load-trace
نمایش
تمام اسناد
بارگذاریشده
در طول
پردازش در
stderr.
--maxmem NNBYTES
آزمودن
پشتیبانی
حافظهٔ
تجزیهکننده.
NNBYTES حداکثر
تعداد
بایتهایی
است که
کتابخانه
مجاز به
تخصیص آن
است. این
گزینه
همچنین
میتواند
برای
اطمینان از
اینکه
پردازش
دستهای
فایلهای XML
حافظهٔ
مجازی سرور
اجراکننده
را تمام
نمیکند،
استفاده
شود.
--memory
تجزیه از
حافظه.
--nocompact
تولید
نکردن
گرههای
متنی فشرده
(گزینهٔ
تجزیهکننده
XML_PARSE_COMPACT). فقط برای
اشکالزدایی.
--nodict
عدم
استفاده از
واژهنامهها
(گزینهٔ
تجزیهکننده
XML_PARSE_NODICT). فقط برای
اشکالزدایی.
--noxincludenode
انجام
پردازش XInclude
بدون تولید
گرههای
آغازین و
پایانی XInclude.
--pattern PATTERNVALUE
برای
بهکارگیری
موتور
تشخیص الگو
استفاده
میشود که
میتواند
با رابط
خوانندهٔ
تجزیهکننده
استفاده
شود. این
گزینه
امکان
انتخاب
برخی از
گرههای
سند را بر
اساس یک
عبارت
(زیرمجموعه)
XPath فراهم
میکند.
برای
اشکالزدایی
استفاده
میشود.
--postvalid
اعتبارسنجی
پس از تکمیل
تجزیه.
--push
استفاده
از حالت push در
تجزیهکننده.
--repeat
تکرار
۱۰۰ بار،
برای
زمانسنجی
یا ارزیابی
کارایی (profiling).
--sax1
استفاده
از رابط
منسوخشدهٔ
SAX1 (فقط برای
اشکالزدایی).
--timing
خروجی
دادن
اطلاعات
مربوط به
زمان
صرفشده
توسط xmllint
برای انجام
مراحل
مختلف.
--walker
آزمودن
ماژول walker که
یک رابط
خواننده
برای درخت
سند است؛ به
جای
استفاده از API
خواننده
روی یک سند
تجزیهنشده،
روی یک درخت
موجود در
حافظه کار
میکند.
برای
اشکالزدایی
استفاده
میشود.
--xpath
"XPath_expression"
اجرای
عبارت XPath
ارائهشده
به عنوان
آرگومان و
چاپ نتیجه.
در صورت
وجود
مجموعه
گرهها (nodeset) به
عنوان
نتیجه، هر
گره در
مجموعه به
طور کامل در
خروجی
سریالسازی
میشود. در
صورت خالی
بودن
مجموعه
گرهها،
نتیجهٔ "XPath set is
empty" نمایش
داده شده و
کد خروج ۱۱
بازگردانده
میشود.
برنامهٔ
xmllint یک حالت
پوستهٔ
تعاملی
ارائه
میدهد که
با گزینهٔ
--shell
فراخوانی
میشود.
دستورهای
موجود در
حالت پوسته
عبارتند از
(به ترتیب
حروف
الفبا):
base
نمایش
پایهٔ XML (xml:base)
گره.
bye
خروج از
پوسته.
cat NODE
نمایش
گره
مشخصشده
یا گره
فعلی.
cd PATH
تغییر
گره فعلی به
مسیر
مشخصشده
(در صورت
یکتا بودن)
یا ریشه در
صورت عدم
ارائه
آرگومان.
dir PATH
تخلیهٔ
اطلاعات
دربارهٔ
گره (فضای
نام،
ویژگیها،
محتوا).
du PATH
نمایش
ساختار
زیردرخت
زیر مسیر
مشخصشده
یا گره
فعلی.
exit
خروج از
پوسته.
help
نمایش
این
راهنما.
load FILENAME
بارگذاری
یک سند جدید
با نام فایل
دادهشده.
ls PATH
فهرست
کردن
محتویات
مسیر
مشخصشده
یا
دایرکتوری
فعلی.
pwd
نمایش
مسیر به گره
فعلی.
quit
خروج از
پوسته.
save FILENAME
ذخیرهٔ
سند فعلی با
نام فایل
دادهشده
یا نام اصلی
آن.
validate
بررسی
سند برای
یافتن
خطاها.
write FILENAME
نوشتن
گره فعلی در
نام فایل
دادهشده.
SGML_CATALOG_FILES
رفتار
کاتالوگ SGML را
میتوان با
هدایت مجدد
پرسوجوها
به مجموعه
کاتالوگهای
اختصاصی
کاربر
تغییر داد.
این کار با
تنظیم
متغیر
محیطی SGML_CATALOG_FILES
بر روی
فهرستی از
کاتالوگها
انجامپذیر
است. مقدار
خالی باید
بارگذاری
کاتالوگ
پیشفرض را
غیرفعال
کند.
XML_CATALOG_FILES
رفتار
کاتالوگ XML را
میتوان با
هدایت مجدد
پرسوجوها
به مجموعه
کاتالوگهای
اختصاصی
کاربر
تغییر داد.
این کار با
تنظیم
متغیر
محیطی XML_CATALOG_FILES
بر روی
فهرستی از
کاتالوگها
که با فاصله
از هم جدا
شدهاند
انجام
میشود.
برای گریز
(اسکیپ) از
فاصلهها
یا
نویسههای
دیگر از percent-encoding
استفاده
کنید. متغیر
خالی باید
بارگذاری
کاتالوگ
پیشفرض را
غیرفعال
کند.
XML_DEBUG_CATALOG
تنظیم
متغیر
محیطی XML_DEBUG_CATALOG
به مقداری
غیر از صفر
با استفاده
از دستور export
باعث خروجی
دادن
اطلاعات
اشکالزدایی
مربوط به
عملیات
کاتالوگ
میشود.
XMLLINT_INDENT
تنظیم
متغیر
محیطی XMLLINT_INDENT
میزان
تورفتگی را
کنترل
میکند.
مقدار
پیشفرض دو
فاصله " "
است.
کدهای
خروج xmllint
اطلاعاتی
ارائه
میدهند که
هنگام
فراخوانی
آن از طریق
اسکریپتها
قابل
استفاده
است.
0
بدون
خطا
1
دستهبندینشده
2
خطا در DTD
3
خطای
اعتبارسنجی
4
سند
خوشساخت
نیست یا
خوانده
نشد
5
خطا در
کامپایل
طرحواره
(schema)
6
خطا در
نوشتن
خروجی
7
خطا در
الگو (هنگام
استفاده از
گزینهٔ --pattern
تولید
میشود)
9
خطای
اتمام
حافظه
10
خطای
ارزیابی XPath
11
نتیجهٔ XPath
خالی است
John Fleck <jfleck@inkstain.net>
Ziying Sherwin <sherwin@nlm.nih.gov>
Heiko Rupp <hwr@pilhuhn.de>