عربيالفرنسيةالإسبانية

Ad


OnWorks فافيكون

flexml - عبر الإنترنت في السحابة

قم بتشغيل flexml في مزود استضافة OnWorks المجاني عبر Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

هذا هو الأمر flexml الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة عبر الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت

برنامج:

اسم


flexml - إنشاء معالج XML للتحقق من صحة التطبيقات والتطبيقات من DTD

موجز


فليكسمل [- ASHDvdnLXV] [-sskel] [-pعانة] [-iinit_header] [-uأوري] [-rالجذر] [-aالإجراءات]
الاسم[.dtd]

الوصف


فليكسمل يقرأ الاسم. dtd الذي يجب أن يكون DTD (تعريف نوع المستند) يصف التنسيق
من مستندات XML (لغة التوصيف الموسعة) ، وتنتج XML "تدقيقًا" المعالج
مع واجهة لدعم XML استمارتناس. يمكن إنشاء التطبيقات المناسبة
اختياريًا من "ملفات الإجراءات" الخاصة ، إما للربط أو للجمع النصي مع
المعالج.

سيتحقق المعالج الذي تم إنشاؤه فقط من صحة المستندات التي تتوافق بدقة مع DTD ،
بدون إطالة it، بشكل أكثر دقة نحن في الممارسة نقيد قاعدة XML [28] على

[و 28] Dictypedecl :: = ' "

حيث يشير "المعرّف الخارجي" إلى DTD المستخدم. (قد يقول المرء ، في الواقع ، ذلك فليكسمل
تنفذ ترميز "غير قابل للتوسيع". :)

المعالج الذي تم إنشاؤه هو ملف ثني(1) الماسح الضوئي ، اسمه افتراضيًا الاسم مع المقابلة
ملف رأس C. الاسم لتجميع منفصل للتطبيقات التي تم إنشاؤها. اختياريا
فليكسمل يأخذ الإجراءات ملف مع إجراءات لكل عنصر وينتج ملف C مع عنصر
وظائف لتطبيق XML مع نقاط دخول يتم استدعاؤها من معالج XML (يمكن
قم أيضًا بطي تطبيق XML في معالج XML لإنشاء تطبيقات XML مستقلة
لكن هذا يمنع مشاركة المعالج بين التطبيقات).

في "OPTIONS" نسرد الخيارات الممكنة ، في "ACTION FILE FORMAT" نشرح كيفية الكتابة
التطبيقات ، في "التجميع" نشرح كيفية تجميع المعالجات المنتجة و
التطبيقات في الملفات التنفيذية ، وفي "الأخطاء" نقوم بإدراج القيود الحالية للنظام
قبل إعطاء المراجع القياسية.

OPTIONS


فليكسمل يأخذ الخيارات التالية.

- قائم بذاته, -A
توليد قائمة بذاتها تطبيق الماسح الضوئي. إذا تم دمجها مع -aالإجراءات ثم
سيتم تسمية التطبيق باسم الإجراءات بالملحق الذي تم استبداله بـ .l، وإلا فإنه
سيكون في الاسم. يتعارض مع -S, -Hو -D.

--أجراءات الإجراءات, -a الإجراءات
يستخدم الإجراءات ملف لإنتاج تطبيق XML في الملف بنفس الاسم مثل
الإجراءات بعد استبدال الامتداد بـ .c. إذا تم دمجها مع -A ثم بدلاً من ذلك
سيشمل التطبيق المستقل وظائف العمل.

--غبي [اسم التطبيق], -D [اسم التطبيق]
قم بإنشاء تطبيق وهمي به وظائف فارغة فقط ليتم استدعاؤها بواسطة XML
المعالج. لو اسم التطبيق لم يتم تحديده في سطر الأوامر ، فهو افتراضي
اسم دمية ج. إذا تم دمجها مع -a الإجراءات ثم سيقوم التطبيق بإدراج ملف
الإجراءات المحددة ويتم تسميتها باسم الإجراءات بالملحق الذي تم استبداله بـ .c.
يتعارض مع -A؛ التي تنطوي عليها -a ما لم يكن أي منهما -شيد محدد.

--Debug, -d
يقوم بتشغيل وضع التصحيح في جهاز المسح المرن ويطبع أيضًا تفاصيل DTD
التحليل الذي يقوم به فليكسمل.

- رأس [header_name], -H [header_name]
قم بإنشاء ملف الرأس. إذا كان header_name غير محدد في سطر الأوامر ،
التخلف عن الاسم. يتعارض مع -A؛ تشغيل بشكل افتراضي إذا لم يكن أي من -شيد محدد.

- لينينو, -L
يجعل معالج XML (كما تم إنتاجه بواسطة ثني(1) عد الأسطر في الإدخال واحتفظ بها
وهي متاحة لإجراءات تطبيق XML في العدد الصحيح "yylineno". (هذا من
الافتراضي لأن حمل الأداء مهم.)

--هادئ, -q
يمنع معالج XML (كما تم إنتاجه بواسطة ثني(1)) من الإبلاغ عن الخطأ الذي يتم تشغيله
في stderr. بدلاً من ذلك ، سيتعين على المستخدمين تجميع رسائل الخطأ بامتداد
parse_err_msg () وظيفة. بشكل افتراضي ، يتم كتابة رسائل الخطأ على stderr.

--ركض جاف, -n
"التشغيل الجاف": لا تنتج أيًا من ملفات الإخراج.

--مصفوح عانة, -p عانة
يعيّن نوع المستند ليكون "PUBLIC" مع المعرّف عانة بدلاً من "SYSTEM" ،
الافتراضي.

- رأس_البدء init_header, -i init_header
يضع سطرًا يحتوي على "#include" init_header "" في قسم "٪ {...٪}" أعلى
ملف .l الذي تم إنشاؤه. قد يكون هذا مفيدًا لعمل العديد من "#define" s المرنة ، لـ
مثال "YY_INPUT" أو "YY_DECL".

--sysid=sysid
يتجاوز معرّف "SYSTEM" الخاص بـ DTD المقبول. مفيد في بعض الأحيان عندما يكون dtd الخاص بك
وضعها في دليل فرعي.

- علامات الجذر الجذر, -r الجذر
يقيد معالج XML للتحقق من صحة المستندات التي تحتوي على أحد عناصر الجذر فقط
المدرجة في الفاصلة الجذر.

--الماسح الضوئي [scan_name], -S [scan_name]
توليد الماسح الضوئي. لو scan_name لم يتم تقديمه في سطر الأوامر ، فهو افتراضي
الاسم. يتعارض مع -A؛ تشغيل بشكل افتراضي إذا لم يكن أي من -شيد محدد.

- skel skel, -s skel
استخدم الماسح الضوئي للهيكل العظمي skel بدلا من الافتراضي.

--اكت بن فليكسمل-أكت, -T فليكسمل-أكت
هذا خيار داخلي يستخدم بشكل أساسي لاختبار إصدارات Flexml التي لم يتم تثبيتها بعد.

- زيادة مكدس تكديس المكدس, -b تكديس المكدس
يضبط FLEXML_BUFFERSTACKSIZE على stack_increment (100000 افتراضيًا). هذا الضوابط
مقدار نمو مكدس البيانات في كل منهما realloc ().

--tag- بادئة STRING, -O STRING
استخدم STRING للتمييز بين إصدارات متعددة من flexml في نفس رمز C ، تمامًا مثل
الوسيطة المرن P-.

--وري أوري, -u أوري
يعيّن URI الخاص بـ DTD ، المستخدم في رأس "DOCTYPE" ، إلى المحدد أوري (لل
الافتراضي هو اسم DTD).

- الإسراف, -v
كن مطولًا: صدى كل إعلان DTD (بعد توسيع المعلمة).

--الإصدار, -V
اطبع نسخة فليكسمل والخروج.

ACTION FILE FORMAT


ملفات الإجراءات ، التي تم تمريرها إلى -a الخيار ، هي مستندات XML متوافقة مع DTD
flexml-act.dtd وهو ما يلي:








يجب استخدام العناصر على النحو التالي:

"قمة"
استخدم لرمز C عالي المستوى مثل الإعلانات العامة ووظائف المرافق وما إلى ذلك.

"يبدأ"
إرفاق الشفرة كإجراء بالعنصر الذي يحمل اسم "" العلامة "" المطلوبة
يصف. يجب أن يكون المكون ""٪ C-code؛ "" كود C مناسب للإدراج في C
block (على سبيل المثال ، ضمن "{" ... "}" لذلك قد تحتوي على متغيرات محلية) ؛ علاوة على ذلك
الامتدادات التالية متوفرة:

"{"السمة"}": يمكن استخدامها للوصول إلى قيمة ملف السمة على النحو المحدد مع
السمة"="قيمنا في علامة البداية. شركة، "{"السمةسيتم تفسير "}"
اعتمادا على إعلان السمة. إذا تم التصريح عن السمة كملف
النوع المعدود مثل



ثم قيمة السمة C هي من النوع المعدود مع كتابة العناصر
"{"السمة"="alt1"}" ، "{"السمة"="alt2"}"، إلخ.؛ علاوة على ذلك غير مصلد السمة
له "القيمة" "{!"السمة"}". إذا لم تكن السمة تعدادًا إذن
"{"السمة"}" سلسلة C منتهية بقيمة خالية (من النوع "char *") و "{!"السمة"}"
باطل".

"نهاية"
وبالمثل يرفق الرمز كإجراء بعلامة النهاية مع اسم المطلوب
سمة "علامة" ؛ هنا أيضًا يجب أن يكون المكون ""٪ C-code؛ "" كود C مناسبًا له
التضمين في كتلة C. في حالة احتواء العنصر على محتويات "مختلطة" ، أي تم التصريح عنه
للسماح بـ "#PCDATA" ، فإن المتغير التالي متاح:

"{#PCDATA}": يحتوي على نص ("#PCDATA") للعنصر كـ C منتهي بقيمة خالية
سلسلة (من نوع "char *"). في حالة خلط عنصر المحتويات المختلطة بين النص و
العناصر الفرعية ثم "pcdata" تحتوي على التسلسل البسيط لأجزاء النص مثل
سلسلة واحدة.

"الأساسية"
أخيرًا ، يمكن أن يحتوي العنصر "الرئيسي" الاختياري على وظيفة C "الرئيسية" في XML
طلب. عادة يجب أن تتضمن الوظيفة "الرئيسية" (على الأقل) استدعاء واحد من
معالج XML:

"yylex ()": لاستدعاء معالج XML الذي تم إنتاجه بواسطة ثني(1) في مستند XML الموجود في
الإدخال القياسي (في الواقع مقبض ملف "yyin": راجع دليل ثني(1) من أجل
معلومات حول كيفية تغيير هذا بالإضافة إلى الاسم "yylex").

إذا لم يتم توفير إجراء "رئيسي" ، فسيتم استخدام ما يلي:

int main () {exit (yylex ()) ؛ }

يُنصح باستخدام أقسام XML <"! [CDATA [" ... "]]"> لرمز C للتأكد من
يتم تمرير جميع الأحرف بشكل صحيح إلى ملف الإخراج.

لاحظ أخيرًا ذلك فليكسمل يتعامل مع العناصر الفارغةبطاقة"/"> يعادلبطاقة> <"/"بطاقة>.

التحويل البرمجي


ما يلي جعل(1) يوضح جزء الملف كيف يمكن للمرء أن يجمع فليكسملالبرامج المولدة:

# البرامج.
فليكسمل = فليكسمل -v

# إنشاء معالج XML قابل للربط مع رأس للتطبيق.
٪ .l٪ .h:٪ .dtd
$ (FLEXML) $

# إنشاء مصدر C من الماسح الضوئي المرن.
٪ .c:٪ .l
$ (FLEX) -Bs -o "$ @" "$ <"

# إنشاء مصدر تطبيق XML C لربطه بالمعالج.
# ملاحظة: يجب أن تكون التبعية من الشكل "appl.c: appl.act proc.dtd".
٪ .c:٪ .act
$ (FLEXML) -D -a $ ^

# التوليد المباشر لتطبيق + معالج XML المستقل.
# ملاحظة: يجب أن تكون التبعية من الشكل "appl.l: appl.act proc.dtd".
٪ .l:٪ .act
$ (FLEXML) -A -a $ ^

استخدم flexml عبر الإنترنت باستخدام خدمات onworks.net


خوادم ومحطات عمل مجانية

قم بتنزيل تطبيقات Windows و Linux

أوامر لينكس

Ad