هذا هو الأمر refdbxp الذي يمكن تشغيله في مزود الاستضافة المجانية OnWorks باستخدام إحدى محطات العمل المجانية المتعددة على الإنترنت مثل Ubuntu Online أو Fedora Online أو محاكي Windows عبر الإنترنت أو محاكي MAC OS عبر الإنترنت
برنامج:
اسم
refdbxp - يحول تنسيقات الاقتباس القصيرة والكاملة في مستندات SGML و XML التي تحتوي على
استشهادات RefDB.
موجز
refdbxp [-h] [-s] [-t نمط الإدخال] refdbxp
الوصف
refdbxp يسمح بالتحويل البيني للتدوين القصير والكامل للاقتباسات في ملف
وثائق SGML وXML المدعومة RefDB(7). انظر دليل RefDB (انظر أدناه) من أجل
معلومات حول الترميزين. التحويل آمن ، وهو يدعم
خلط التدوين القصير والكامل في نفس المستند المصدر. سوف الاستشهادات التدوين الكامل
استخدم الترميز الصحيح للاقتباسات الأولى واللاحقة لنفس المرجع.
ملاحظات
يجب أن تدرك أن refdbxp ليست أداة SGML أو XML مدركة. إنه نص بسيط
أداة الاستبدال مع بعض القيود:
· إذا قمت بالتعليق على عناصر الاقتباس ، فإنها لا تزال تعتبر كما لو كانت موجودة
عندما يتم حل مشكلة الاقتباس الأولى / اللاحقة (لا يعرف refdbxp ببساطة
حول مفهوم التعليق). في المثال التالي ، الاقتباس في
سيكون السطر الأخير هو الوحيد الذي تم تحويله ، ولكن سيتم تنسيقه كملف
الاقتباس اللاحق للمرجع 9 ، وليس الاقتباس الأول:
9; first occurrence -->
9 ؛
إذا كنت تستخدم علامات SGML / XML في تعليق وتداخل هذا التعليق ببراعة
بين علامة البداية وعلامة النهاية لعنصر ذي صلة بـ refdbxp ، أنت
أطلق النار على قدمك. أنت لا تريد استخدام رمز مثل هذا (لماذا تريد ،
على أي حال؟):
--> 2;5;9;
· refdbxp لا يشمل الكيانات الخارجية. من المفترض أن يكون المستند بأكمله refdbxp
لتحويل يجب أن يكون في قطعة واحدة.
refdbxp حاليًا لا يدعم قواعد بيانات متعددة لكل مستند.
تتمثل إحدى طرق التغلب على مشكلة التعليقات في إنشاء نسخة من سيدك
المصدر واستخدم برنامجًا نصيًا صغيرًا لإزالة التعليقات قبل المعالجة والتحويل مباشرةً
نصك. للتغلب على حقيقة أن refdbxp لا يتعامل مع الكيانات الخارجية
بشكل صحيح ، استخدم أداة مثل com.sgmlnorm (يتم شحنها مع حزم Jade/OpenJade) إلى
المعالجة المسبقة للمستند. للتغلب على الدعم المفقود لقواعد البيانات المتعددة ،
حسنا ... فقط انتظر.
OPTIONS
-h
يطبع ملخص الأمر على الشاشة ويخرج.
-s
إنشاء اقتباسات باستخدام التدوين القصير. الافتراضي هو استخدام التدوين الكامل.
-t نمط الإدخال
حدد نوع الإدخال. القيم المدعومة حاليًا هي db31 (إصدار DocBook SGML
3.1 أو أحدث) ، db31x (DocBook XML ، جميع الإصدارات) ، و تيكس (TEI XML).
مثال
لنجرب أولاً الاستخدام الأكثر شيوعًا لـ refdbxp. الأمر التالي يوسع الكل
الاقتباسات ، بغض النظر عما إذا كانت مكتوبة في تدوين قصير أو كامل ، بالكامل
التدوين ويكتب النتيجة إلى ملف جديد foo.full.sgml. الإدخال من foo.sgml هو
من المفترض أن يكون DocBook SGML:
~$
refdbxp -t db31 < foo.sgml > foo.full.sgml
الأمر التالي يسير في الاتجاه الآخر. هذه المرة نقوم بتحويل جميع الاقتباسات من TEI XML
وثيقة ، بغض النظر عما إذا كانت مكتوبة في تدوين قصير أو كامل ، إلى الاختصار
تدوين واكتب النتيجة في ملف جديد:
~$
refdbxp -t تيكس -s < bar.xml > bar.short.xml
يوضح المثال الأخير كيفية التعامل مع المستندات التي تتكون من عدة ملفات. كتاب DocBook
يتضمن ملف SGML الرئيسي foo_master.sgml عدة مستندات ثانوية أخرى ككيانات خارجية.
ستؤدي معالجة هذه الملفات بشكل فردي باستخدام refdbxp إلى إفساد الأشياء مثل ملف
لن يتم التعامل مع مشكلة الاقتباس الأولى / اللاحقة بشكل صحيح وتضارب
سيؤدي ذلك إلى معرفات العناصر التي تم إنشاؤها تلقائيًا. الأمر التالي يأتي للإنقاذ
ويوسع كل الاقتباسات في المستند بشكل صحيح:
~$
com.osgmlnorm -dn /usr/local/share/sgml/docbook/4.1/docbook.dcl foo_master.sgml | refdbxp -t db31 > foo.full.sgml
ملاحظات
ربما تكون قد أدركت أن هناك مشكلتين صغيرتين في هذا الإجراء. أولاً،
باستخدام (o) sgmlnorm سيشمل أيضًا الكيان الخارجي الذي يحتوي (أو سيحتوي
بمجرد إنشائه) عنصر الببليوغرافيا الذي تم إنشاؤه بواسطة refdb. طريقة واحدة للتغلب على هذا
لاستخدام ملف وهمي يحتوي فقط على مرجع الكيان في تعليق. لنفرض
يريد مستندك foo.sgml تضمين قائمة المراجع باستخدام الكيان
إعلان٪ ببليوغرافيا ؛ في المكان المناسب. تم التصريح عن الكيان في
مجموعة التصريح الفرعية أعلى ملف المصدر كملف خارجي foo.bib.sgml.
ثم يجب عليك إنشاء ملف foo.bib.sgml بالمحتويات التالية:
يتعين علينا التفوق على مرجع الكيان حيث قد تكون متداخلة ، أي المحلل اللغوي
سيحاول استبدال هذا الكيان مرة أخرى ويفشل لأن الكيان مفتوح بالفعل.
بعد التحويل ، تحتاج فقط إلى إلغاء تعليق كيان المعلمة. إذا كنت تحب طويلة
الأوامر ، يمكنك القيام بذلك على الفور كما يلي:
~$
com.osgmlnorm -dn /usr/local/share/sgml/docbook/4.1/docbook.dcl foo_master.sgml | refdbxp -t db31 | عطش 'س٪ ٪\&فهرس؛٪' > foo.full.sgml
ثانيًا ، لن ينتج (o) nsgmlnorm مجموعة فرعية للتصريح الداخلي التي نحتاج إليها
الأقل للإعلان عن كيان المعلمة للببليوغرافيا. يمكنك إصلاح هذا باستخدام ملف
sed على طول سطور الأمر الموضح أعلاه أو قم بإضافته يدويًا.
استخدم refdbxp عبر الإنترنت باستخدام خدمات onworks.net