openjade-1.4devel - מקוון בענן

זוהי הפקודה openjade-1.4devel שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות החינמיות שלנו כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS.

תָכְנִית:

שֵׁם


openjade - החלת גיליון סגנונות DSSSL על מסמך SGML או XML

תַקצִיר


openjade [-vCegG2s] [-b הַצפָּנָה] [-f error_file] [-c קטלוג_סיסטם] [-D dir]
[-a סוג_קישור] [-A קשת] [-E max_errors] [-i ישות] [-w warning_type]
[-d dsssl_spec] [-V משתנה[=ערך]] [-t סוג_פלט] [-o קובץ פלט]
[sysid...]

תיאור


openjade הוא יישום של שפת DSSSL הסטנדרטית ISO/IEC 10179:1996. ה-
מנוע DSSSL מקבל כקלט מסמך SGML או XML והופך אותו לפורמטים
כמו:

* ייצוג XML של עץ אובייקט הזרימה.

* פורמט RTF שניתן לעבד ולהדפסה באמצעות Word Viewer 97 החינמי של מיקרוסופט

* פורמט TeX

* פורמט MIF שניתן לעבד ולהדפיס באמצעות Framemaker

* פורמט SGML או XML. זה משמש בשילוב עם מחלקות אובייקט זרימה לא סטנדרטיות כדי
יצירת SGML, ובכך מאפשרת openjade לשימוש עבור טרנספורמציות SGML/XML.

מזהה המערכת של המסמך שיש לעבד מצוין כארגומנט ל
openjadeאם אפשרות זו מושמטת, הקלט הסטנדרטי ייקרא.

openjade קובע את מזהה המערכת עבור מפרט DSSSL באופן הבא:

1. אם האפשרות -d מצוינת, היא תשתמש בארגומנט כמזהה המערכת.

2. אחרת, הוא יחפש הוראות עיבוד בפרולוג של המסמך. שתיים
סוגי הוראות עיבוד מוכרים:



נתוני המערכת של פקודת העיבוד מנותחים כמו תג התחלה של SGML. הם יהיו
מנותח באמצעות תחביר קונקרטי של הייחוס, ללא קשר לתחביר הקונקרטי בפועל של ה-
מסמך. השם שמתחיל את פקודת העיבוד יכול להיות גיליון סגנונות,
גיליון-סגנון xml או גיליון-סגנון xml. פקודת העיבוד תתעלם אלא אם כן
ערך התכונה type הוא אחד מהבאים הבאים: text/dsssl, text/x-dsssl, application/dsssl או
application/x-dsssl. ערך המאפיין href הוא מזהה המערכת של ה-DSSSL.
מפרט.



מזהה המערכת הוא החלק של נתוני המערכת של פקודת העיבוד
לאחר השם הראשוני וכל רווח לבן.

למרות שהוראת העיבוד מזוהה רק בפרולוג, היא לא חייבת להתרחש ב
ישות המסמך. לדוגמה, זה יכול להופיע בקובץ DTD. מזהה המערכת יהיה
מתפרש יחסית למקום שבו מתרחשת הוראת העיבוד.

3. אחרת, הוא ישתמש במזהה המערכת של המסמך עם כל סיומת ששונתה
ל-.dsl.

מסמך מפרט DSSSL יכול להכיל יותר ממפרט סגנון אחד. אם ה-
מזהה המערכת של מפרט DSSSL ואחריו #id, לאחר מכן openjade אשתמש
מפרט הסגנון שהמזהה הייחודי שלו הוא id. זה מותר גם עם ה- -d
אפשרות ועם הוראות העיבוד.

מפרט DSSSL חייב להיות מסמך SGML התואם לארכיטקטורת DSSSL. עבור
דוגמה, ראה dsssl/demo.dsl.

openjade תומך באפשרויות הבאות בנוסף ל-OpenSP הרגיל (ראה onsgmls(1))
אפשרויות (שימו לב שכל האפשרויות תלויות רישיות, כלומר -g ו -G ישנן אפשרויות שונות):

-d dsssl_spec
זה מציין ש-dsssl_spec הוא מזהה המערכת של מפרט DSSSL.
להשתמש.

-G מצב ניפוי שגיאות. כאשר מתרחשת שגיאה בהערכת ביטוי, openjade יצטרך
הצגת מעקב מחסנית. שים לב שזה מבטל אופטימיזציה של קריאה tail-call.

-c שם הקובץ
ארגומנטים בשם הקובץ מציינים קבצי קטלוג ולא את ישות המסמך.
ישות המסמך מצוינת על ידי הערך הראשון של DOCUMENT בקבצי הקטלוג.

-s מצב ציות קפדני. נכון לעכשיו, ההשפעה היחידה היא שג'ייד לא משתמשת בשום דבר.
שמות תווים מוגדרים מראש, מיפויי ישויות sdata או תווים-שם. זהו
שימושי לבדיקת האם גיליון הסגנונות שלך ניתן להעברה למימושים אחרים של DSSSL
ושהוא תואם לחלוטין את מפרטי DSSSL.

-t סוג_פלט
סוג_פלט מציין את סוג הפלט באופן הבא:

ft ייצוג XML של עץ אובייקט הזרימה

RTF rtf-95 RTF (משמש לטרנספורמציות SGML/XML ל-RTF) טקסט עשיר של מיקרוסופט
פורמט rtf-95 מייצר פלט המותאם ל-Word 95 ולא ל-Word 97.

טקס TeX (משמש לטרנספורמציות SGML/XML ל-TeX)

sgml sgml-raw SGML (משמש לטרנספורמציות SGML/XML ל-SGML). sgml-raw לא
הפקת מעברי שורה בתגיות.

xml xml-raw XML (משמש לטרנספורמציות SGML/XML ל-XML). xml-raw אינו פולט
מעברי שורה בתגיות.

html HTML (משמש לטרנספורמציות SGML/XML ל-HTML)

MIF MIF (משמש לטרנספורמציות SGML/XML ל-MIF)

-o קובץ פלט
כתוב פלט ל קובץ פלט במקום שם הקובץ המוגדר כברירת מחדל.
שם קובץ הקלט האחרון כאשר סיומתו מוחלפת בשם הסוג של
פלט. אם אין שם קובץ קלט, הסיומת תתווסף לקובץ jade-out.

-V משתנה
זה שווה ערך לביצוע (הגדרת משתנה #t) אלא שהגדרה זו תעשה
לקבל עדיפות על פני כל הגדרה של משתנה בגיליון סגנון.

-V משתנה=ערך
זה שווה ערך לביצוע (הגדרה משתנה "ערך") אלא שהגדרה זו
יקבל עדיפות על פני כל הגדרה של משתנה בגיליון סגנון.

-V (לְהַגדִיר משתנה ערך)
זה שווה ערך לביצוע (הגדרת ערך משתנה) אלא שהגדרה זו
יקבל עדיפות על פני כל הגדרה של משתנה בגיליון סגנון. שים לב שאתה
כנראה יצטרך להשתמש במנגנון מילוט כלשהו עבור החללים כדי לקבל את כולו
ביטוי סכמה מנותח כארגומנט cmdline אחד.

-wסוג אזהרות ושגיאות בקרה. מרובות -w אפשרויות מותרות. הערכים הבאים
מסוג הפעלת אזהרות:

xml אזהרה לגבי מבנים שאינם מותרים על ידי XML.

מעורב הזהרו לגבי מודלים של תוכן מעורב שאינם מאפשרים #pcdata בשום מקום.

sgmldecl הזהרו מפני מבנים מפוקפקים שונים בהצהרת SGML.

צריך הזהירו לגבי המלצות שונות שהוצגו בתקן ISO 8879 שהמסמך אינו עושה
לא לעמוד בדרישות. (ההמלצות מבוטאות במילה "צריך", בניגוד ל-
דרישות אשר בדרך כלל מבוטאות במילה "יאלץ".)

ברירת מחדל אזהרה לגבי הפניות ברירת מחדל.

לשכפל אזהרה לגבי הצהרות ישות כפולות.

לא מוגדר אזהרה לגבי אלמנטים לא מוגדרים: אלמנטים המשמשים ב-DTD אך אינם מוגדרים.

לא סגור אזהרה לגבי תגיות התחלה וסיום לא סגורות.

ריק אזהרה לגבי תגי התחלה וסיום ריקים.

נטו הזהר לגבי תגיות התחלה ותגיות סיום ריק המאפשרות גישה לאינטרנט.

תגית מינימלית אזהרה לגבי תגי התחלה וסיום ממוזערים. שווה ערך לשילוב של
אזהרות לא סגורות, ריקות ורשת.

מפה שאינה בשימוש אזהרה לגבי מפות עזר קצרות שאינן בשימוש: מפות המוצהרות עם
הצהרת מיפוי קצרה של הפניה אך מעולם לא נעשה בה שימוש ב- short reference
הצהרה ב-DTD.

פרמטר שאינו בשימוש אזהרה לגבי ישויות פרמטרים המוגדרות אך אינן בשימוש ב-DTD.
ישויות פרמטר פנימיות שאינן בשימוש שהטקסט שלהן הוא INCLUDE או IGNORE לא יקבלו את
אזהרה.

סימון-סיסטם אזהרה לגבי סימונים שלא ניתן היה ליצור עבורם מזהה מערכת
נוצר.

את כל הזהירו מפני מצבים שבדרך כלל יש להימנע מהם (לדעת ה-
מחבר). שווה ערך ל: מעורב, צריך, ברירת מחדל, לא מוגדר, sgmldecl, מפה שאינה בשימוש,
פרמטר שאינו בשימוש, ריק ולא סגור.

ניתן להשבית אזהרה על ידי שימוש בקידומת שמה ללא-. לכן - קיר
-wno-שכפול יאפשר את כל האזהרות מלבד אלו הנוגעות לישות כפולה
הצהרות.

הערכים הבאים עבור warning_type השבתת שגיאות:

ללא אישור אין לתת שגיאה עבור ערך ייחוס של מזהה שאף אלמנט אינו ערך שלו.
מזהה. האפקט יהיה כאילו לכל תכונה המוצהרת כערך ייחוס של מזהה היה
הוכרז כשם.

לא משמעותי אל תציג שגיאה כאשר תו שאינו משמעותי
התו בתחביר הקונקרטי של ההפניה מופיע בליטרלי ב-SGML
הצהרה. זה עשוי להיות שימושי בשילוב עם חבילות בדיקה מסוימות עם באגים.

לא תקף אין לדרוש שהמסמך יהיה תקין מבחינת סוג. יש לכך השפעה של
שינוי הצהרת SGML כך שתציין VALIDITY NOASSERT ו-IMPLYDEF ATTLIST YES
אלמנט כן. אפשרות של -wvalid יש השפעה של שינוי הצהרת SGML
כדי לציין את סוג התוקף ואת מספר האלמנט IMPLYDEF ATTLIST NO. אם אף אחד מהם אינו -wvalid ולא
-wno-valid אם מצוינים, אזי ה-VALIDITY וה-IMPLYDEF שצוינו ב-SGML
ייעשה שימוש בהצהרה.

הסביבה


OpenJade מתעלם ממשתני הסביבה SP_CHARSET_FIXED ו-SP_SYSTEM_CHARSET ו...
תמיד משתמש ביוניקוד כקבוצת תווים פנימית, כאילו SP_CHARSET_FIXED היה 1 ו-
SP_SYSTEM_CHARSET לא הוגדר. לכן רק משתנה הסביבה SP_ENCODING רלוונטי ל-
הטיפול של OpenJade במערכות תווים.

OPENJADE הרחבות


ההליכים החיצוניים הבאים זמינים. נהלים חיצוניים אלה מוגדרים על ידי
אב טיפוס באותו אופן כמו בתקן. כדי להשתמש באחד מהחיצוניים האלה
נהלים, עליך להשתמש בהליך הסטנדרטי של נוהל חיצוני, תוך שימוש בנוהל ציבורי
מזהה של "לא רשום::ג'יימס קלארק//פרוצדורה::שם" כאשר שם הוא השם שניתן
כאן, בדרך כלל על ידי הכללת הפרטים הבאים במפרט DSSSL:

(define name (external-procedure "לא רשום::ג'יימס קלארק//Procedure::name"))

שים לב ש-external-procedure מחזירה #f אם היא לא יודעת על ה-public שצוין.
מזהה. באפשרותך להשתמש בזה כדי לאפשר למפרטי DSSSL שלך לעבוד בצורה חלקה עם
יישומים אחרים שאינם תומכים בהרחבות אלה.

עבור פרוצדורות חיצוניות שנוספו על ידי צוות OpenJade, יש להשתמש במזהה ציבורי של הטופס
"לא רשום::OpenJade//Procedure::name".

דרך קלה לקבל גישה לכל הפרוצדורות החיצוניות היא להשתמש במפרט הסגנון
dsssl/extensions.dsl#procedures. הקובץ dsssl/extensions.dsl מכיל גם סגנון
מפרטים שהופכים את מחלקות האובייקטים של הזרימה הלא סטנדרטית ומועברים בירושה
מאפיינים הנתמכים על ידי המערכות האחוריות (backends) הזמינים בצורה נוחה.

Debugging

(ניפוי באגים)

יוצר הודעה הכוללת את הערך של obj ולאחר מכן מחזיר את obj.

רצף עמודים פשוט כותרת עליונה/תחתונה לִשְׁלוֹט

(אם-עמוד-ראשון sosofo1 sosofo2)

ניתן להשתמש בזה רק במפרט הערך של אחת הכותרות העליונות/תחתונות.
מאפיינים של simple-page-sequence. מחזירה סוסופו שיוצג כ-sosofo1
אם העמוד הוא העמוד הראשון של רצף העמודים הפשוט, ובמקרה של sosofo2, אחרת.

(אם-עמוד-ראשי sosofo1 sosofo2)

ניתן להשתמש בזה רק במפרט הערך של אחת הכותרות העליונות/תחתונות.
מאפיינים של simple-page-sequence. מחזירה סוסופו שיוצג כ-sosofo1
אם העמוד הוא עמוד קדמי (כלומר, עמוד אי-זוגי) וכ-sosofo2 אם הוא עמוד אחורי (כלומר, עמוד
עמוד אחורי, עמוד זוגי).

מספור

(מספר כל האלמנטים)

(osnl - כל מספרי האלמנטים)

זהה ל-element-number אלא שהוא סופר אלמנטים עם כל מזהה כללי.
אם osnl אינו אלמנט מחזירה #f, אחרת מחזירה 1 ועוד מספר האלמנטים ש
התחיל לפני osnl. זה מספק דרך יעילה ליצירת מזהה ייחודי עבור
כל רכיב במסמך.

חיצוני ישות גישה

(מחרוזת קריאה-ישות)

פעולה זו מחזירה מחרוזת המכילה את תוכן הישות החיצונית עם מערכת
מחרוזת מזהה. יש להשתמש בזה רק עבור ישויות טקסטואליות (CDATA ו-SDATA), ו
לא עבור ישויות בינאריות (NDATA).

POSIX אזור גישה

שפה שפה מדינה

פרוצדורה זו מחזירה אובייקט מסוג שפת סוג, אם המערכת תומכת בפונקציה שצוינה.
שפה. lang היא מחרוזת או סמל המציינים את קוד השפה בן שתי האותיות. country היא א
מחרוזת או סמל המציגים את קוד המדינה בן שתי האותיות.

הליך זה משתמש במיקומי POSIX. זוהי תוספת של OpenJade. הוא אינו נתמך בכל
מערכות הפעלה.

מורחב תֶקֶן נהלים

(sgml-parse sysid #!key active:parent:architecture:)

זה מאפשר לך לציין ארכיטקטורת SGML שאליה המסמך צריך להיות מכוון
ניתן לנתח. זוהי תוספת של OpenJade.

(מובן qk)

זה מאפשר לך להעלות כמות לחזקה שלמה. זוהי חיבור ב-OpenJade.

מגבלות


סעיף זה מתאר את המגבלות של הקצה הקדמי (DSSSL לשימוש כללי)
מנוע); לכל backend יש גם מגבלות משלו.

openjade לא מאפשר הגדרות פנימיות בתחילת הגופים וה-(test =>
גרסה (נמען) של סעיפי תנאי.

openjade תומך רק בתוכנית גרוב אחת וקבועה הכוללת את המודולים הבאים:

* שרירי בסיס

* prlgabs0

* prlgabs1

אינסטאבס

* basesds0

* instsds0

* תת-מקבצים

הוא אינו מיישם את החלקים הבאים של SDQL: תמיכה ב-HyTime, ניתוח עזר, node
ביטויים רגולריים.

כללי שאילתה, סנכרון סוסופו, סוסופוס עקיף, ערכי ייחוס, אזורי קישוט
ומאפייני גופן אינם נתמכים.

שימו לב שרק מאפיינים בירושה שחלים על אובייקט זרימה נתמך כלשהו
ניתן לפרט.

תו/גליף טיפול

הוא תומך רק ברפרטואר תווים מוגדר מראש אחד. שם תו מהצורה
U-XXXX כאשר XXXX הם ארבע ספרות הקסדצימליות באותיות גדולות, מזוהה כמתייחס ל
תו יוניקוד עם קוד זה. עבור תווים רבים, ניתן גם להשתמש ב-
שם לפי ISO/IEC 10646 באותיות קטנות כאשר מילים מופרדות באמצעות מקפים.

חלק משמות הישויות הנפוצים של SDATA מקבוצות הישויות של ISO מזוהים וממופים אליהם
תווים. בנוסף, שם ישות SDATA בצורה U-XXXX, כאשר XXXX הם ארבעה
ספרות הקסדצימליות באותיות גדולות, ממופות לתו יוניקוד עם קוד זה.

OpenJade תומך כעת ב-standard-chars, map-sdata-entity, add-name-chars,
טפסי אלמנט הצהרה של add-separator-chars ו-char-repertoire, המאפשרים גיליון סגנון
כדי להגדיר שמות תווים נוספים, מיפויי ישויות sdata, תווי שם (למשל
תווים המותרים במזהים) ותווי הפרדה. נכון לעכשיו, התווים המוכרים היחידים
רפרטואר הדמויות הוא הרפרטואר המובנה. יש לו את המזהה הציבורי
"לא רשום::OpenJade//רפרטואר דמויות::OpenJade".

בדיקת מערכות

מספר דברים שרצוי היה לבדוק אינם נבדקים:

* כאשר הערך המותר של מאפיין שעבר בירושה הוא סמל, OpenJade בודק רק
שהערך הוא סמל המותר כערך של מאפיין כלשהו; #t ו- #f
מטופלים כסוג מיוחד של סמל במקרה זה.

* OpenJade לא בודק האם אובייקט זרימה מתרחש בהקשר שבו הוא נמצא
מותר.

* OpenJade לא מונע חיבור של אובייקטי זרימה לפורט הראשי של זרימה
אובייקט כאשר לאובייקט הזרימה לא אמורה להיות יציאה ראשית.

רוב בדיקות הסוג מתבצעות בזמן ריצה ולא בזמן קומפילציה.

* OpenJade אינו בודק מאפיינים שאינם עוברים בירושה שנדרשים להיות
נָקוּב.

* זה לא בודק שתכונות אופציונליות שנעשה בהן שימוש הוכרזו ב-
טופס תכונות.

אחר מגבלות

הפרימיטיבים הבאים הם רק סטפים:

קבצי char-script-case תמיד מחזירה את הארגומנט האחרון.

כתובת שביקרת בה? תמיד מחזירה #f.

דוגמאות


בהינתן קובץ SGML file.sgml, השתמש בגיליון הסגנונות קובץ.dsl ולפרסם כקובץ rtf.

openjade -t קובץ rtf.sgml

שימוש בגיליון סגנונות שונה:

openjade -t rtf -d docbook.dsl file.sgml

משתמש ב הדפסה מפרט הסגנון הכלול בגיליון הסגנונות

openjade -t rtf -d docbook.dsl#הדפסה קובץ.sgml

והשתמש במפרט ה-html בתוך גיליון הסגנונות כדי להמיר ל-html

openjade -t sgml -i html -d docbook.dsl#html file.sgml

השתמש ב- openjade-1.4devel באופן מקוון באמצעות שירותי onworks.net



התוכניות המקוונות האחרונות של לינוקס ו-Windows