XML DAT

پرش به ناوبری
پرش به جستجو

خلاصه

XML DAT می‌تواند برای تجزیه (Parse) داده‌های XML دلخواه و همچنین داده‌هایی با فرمت SGML/HTML استفاده شود. پس از فرمت‌بندی، بخش‌های انتخاب‌شده‌ای از متن می‌توانند برای پردازش‌های بعدی خروجی گرفته شوند.

یکی از روش‌های کار با XML DAT این است که ابتدا XML را با یک Text DAT یا Web DAT بخوانید و آن را به یک XML DAT پیش‌فرض ارسال کنید. سپس با تغییر الگوی match-all (که به صورت پیش‌فرض "*" است)، انتخاب خود را دقیق‌تر می‌کنید؛ یعنی رشته‌هایی را جایگزین می‌کنید که تعداد المان‌های خروجی را کاهش دهند.


پیش‌زمینه XML و HTML

داده‌های XML و HTML از ساختاری درختی تشکیل شده‌اند که شامل «المان‌ها» هستند. هر المان می‌تواند یا برچسب‌دار (tagged) باشد یا شامل متن دلخواه. المان‌ها می‌توانند تو‌در‌تو (nested) باشند.
المان‌های برچسب‌دار با یک بخش آغازین شروع می‌شوند و معمولاً با یک بخش پایانی خاتمه می‌یابند.

مثال:

<greeting a="1" b="2" c="3"> Hello there. </greeting>

در مثال بالا دو المان وجود دارد:
المان اول یک المان برچسب‌دار با نام greeting است که دارای ویژگی‌های (attributes) a، b و c می‌باشد.
المان دوم یک المان متنی است که شامل متن "Hello there." است.


عملکرد XML DAT

XML DAT با تجزیه‌ی ورودی خود شروع می‌کند و یک درخت داخلی از المان‌ها می‌سازد.

سپس پارامترهای Element Scope برای فیلتر کردن المان‌های ناخواسته استفاده می‌شوند. المان‌های باقی‌مانده برای ایجاد خروجی به کار می‌روند. فرمت خروجی توسط پارامترهای Format تعیین می‌شود. بعد از آن، پارامترهای Output می‌توانند برای محدود کردن بیشتر اطلاعات نمایش‌داده‌شده برای هر المان انتخاب‌شده استفاده شوند.

هر المان تجزیه‌شده شامل جزئیات زیر است:

  • Label (برچسب)
    به هر المان یک برچسب دلخواه مانند n0، n1، n2 و … اختصاص داده می‌شود.
    تمام المان‌ها فرزند المان رزروشده‌ای با برچسب root هستند.

  • Type (نوع)
    المان‌ها معمولاً از نوع tag یا text هستند، اگرچه المان‌های تگ می‌توانند به انواع زیر نیز دسته‌بندی شوند:
    doctype، declaration، comment یا entity.

  • Text (متن)
    متن یک المان به ویژگی تگ آن یا محتوای متنی دلخواه اشاره دارد.
    در مثال بالا، المان اول از نوع tag است و متن آن greeting می‌باشد.
    المان دوم از نوع text است و متن آن Hello there. است.

  • Level (سطح)
    این مقدار نشان می‌دهد یک المان تا چه عمقی تو‌در‌تو شده است.
    به عنوان مثال، المان ریشه (root) همیشه سطح 0 دارد.

  • Parent (والد)
    هر المان دقیقاً یک والد دارد.
    المان root والد ندارد.

  • Children (فرزندان)
    هر المان می‌تواند تعداد دلخواهی المان فرزند داشته باشد.

  • Attributes (ویژگی‌ها)
    هر المان برچسب‌دار می‌تواند تعداد دلخواهی ویژگی داشته باشد.
    هر ویژگی شامل یک نام و یک مقدار است.
    در مثال بالا، تگ greeting شامل ۳ ویژگی است (با نام‌های a، b و c و مقادیر 1، 2 و 3).


محتویات

  1. خلاصه
     1.1 پیش‌زمینه XML و HTML
     1.2 عملکرد XML DAT

  2. پارامترها – صفحه Format

  3. پارامترها – صفحه Element Scope

  4. پارامترها – صفحه Output

  5. پارامترها – صفحه Common

  6. ورودی‌های اپراتور

  7. کانال‌های Info CHOP
     7.1 کانال‌های اطلاعات DAT مشترک
     7.2 کانال‌های اطلاعات اپراتور مشترک


پارامترها – صفحه Format

  • Parse SGML/HTML (sgml)
    اگر فعال باشد، ورودی باید در فرمت SGML/HTML باشد (شامل داده‌های فرم).
    اگر غیرفعال باشد، فرمت XML فرض می‌شود.

  • Merge (merge)
    پارامترهای Merge و Label می‌توانند برای ترکیب دو ورودی داده استفاده شوند.
    ورودی دوم باید XML باشد و نه SGML/HTML.
    این دو پارامتر مشخص می‌کنند ورودی دوم کجا و چگونه ادغام شود.

  • Label (mlabel)
    المانی را مشخص می‌کند که ادغام در آن انجام می‌شود.


پارامترها – صفحه Element Scope

این بخش تعیین می‌کند کدام المان‌ها برای خروجی انتخاب شوند.
به صورت پیش‌فرض، همه‌ی المان‌ها انتخاب می‌شوند.

  • Label (label)
    برچسب المان باید با این پارامتر مطابقت داشته باشد.

  • Type (type)
    نوع المان باید با این پارامتر مطابقت داشته باشد.

  • Text (text)
    متن المان باید با این پارامتر مطابقت داشته باشد.

  • Name (name)
    اگر المان دارای ویژگی باشد، حداقل یکی از ویژگی‌ها باید نامی مطابق این پارامتر داشته باشد.

  • Value (value)
    اگر المان دارای ویژگی باشد، حداقل یکی از ویژگی‌ها باید مقداری مطابق این پارامتر داشته باشد.

  • Parent Label (plabel)
    المان باید والدّی داشته باشد که برچسب آن با این پارامتر مطابقت کند.

  • Parent Type (ptype)
    المان باید والدّی با نوع مطابق این پارامتر داشته باشد.

  • Parent Text (ptext)
    المان باید والدّی با متن مطابق این پارامتر داشته باشد.

  • Parent Name (pname)
    المان باید والدّی داشته باشد که دارای ویژگی‌ای با نام مطابق این پارامتر باشد.

  • Parent Value (pvalue)
    المان باید والدّی داشته باشد که دارای ویژگی‌ای با مقدار مطابق این پارامتر باشد.


پارامترها – صفحه Output

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

  • Name Attributes (oaname)
    فقط ویژگی‌هایی خروجی داده می‌شوند که نام آن‌ها با این پارامتر مطابقت دارد.

  • Value Attributes (oavalue)
    فقط ویژگی‌هایی خروجی داده می‌شوند که مقدار آن‌ها با این پارامتر مطابقت دارد.

  • Children Labels (oclabel)
    فقط فرزندانی خروجی داده می‌شوند که برچسب آن‌ها با این پارامتر مطابقت دارد.

  • Show (show)
    نحوه‌ی نمایش المان‌های انتخاب‌شده را کنترل می‌کند.

  • Label Prefix (lprefix)
    تعیین می‌کند که آیا هنگام خروجی گرفتن جدول‌ها، ویژگی‌ها یا فرزندان، برچسب المان به عنوان پیشوند نمایش داده شود یا نه.


پارامترها – صفحه Common

  • Language (language)
    تعیین می‌کند DAT از کدام زبان اسکریپت استفاده کند.

  • Edit/View Extension (extension)
    پسوند فایلی که DAT به ویرایشگرهای خارجی معرفی می‌کند.

  • Custom Extension (customext)
    تعیین پسوند سفارشی.

  • Word Wrap (wordwrap)
    فعال‌سازی شکستن خط (Word Wrap) برای نمایش نود.


ورودی‌های اپراتور

  • Input 0:

  • Input 1:


کانال‌های Info CHOP

اطلاعات اضافی مربوط به XML DAT از طریق یک Info CHOP قابل دسترسی است.

کانال‌های اطلاعات DAT مشترک

  • num_rows – تعداد ردیف‌ها در این DAT

  • num_cols – تعداد ستون‌ها در این DAT

کانال‌های اطلاعات اپراتور مشترک

  • total_cooks – تعداد دفعاتی که اپراتور از شروع فرآیند Cook شده است

  • cook_time – مدت زمان آخرین Cook بر حسب میلی‌ثانیه

  • cook_frame – شماره فریمی که اپراتور آخرین بار نسبت به تایم‌لاین کامپوننت Cook شده

  • cook_abs_frame – شماره فریمی که اپراتور آخرین بار نسبت به زمان مطلق Cook شده

  • cook_start_time – زمان شروع Cook اپراتور (میلی‌ثانیه) در فریم مربوطه

  • cook_end_time – زمان پایان Cook اپراتور (میلی‌ثانیه) در فریم مربوطه

  • cooked_this_frame – اگر اپراتور در این فریم Cook شده باشد مقدار 1

  • warnings – تعداد هشدارهای اپراتور (در صورت وجود)

  • errors – تعداد خطاهای اپراتور (در صورت وجود)