DtdToHaskell - מקוון בענן

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

תָכְנִית:

שֵׁם


DtdToHaskell - מתרגם XML DTD ל-Haskell

תַקצִיר


DtdToHaskell [ dtdfile [ אוסף ]]

ארגומנטים חסרים בקובץ או מקפים (-) מציינים קלט או פלט סטנדרטיים בהתאמה.

תיאור


DtdToHaskell הוא כלי לתרגום כל קובץ DTD XML תקף לסוגי Haskell מקבילים.
זה מאפשר לך ליצור, לערוך ולשנות מסמכים כערכים רגילים שהוקלדו ב
תוכניות, ולקרוא ולכתוב אותן כמסמכי XML קריאים על ידי בני אדם. היא משתמשת ב
המחלקה Text.XML.HaXml.XmlContent כמסגרת להדפסה וניתוח.

DtdToHaskell קורא ומנתח DTD מ dtdfile (שיכול להיות רק DTD, או
מסמך XML מלא המכיל DTD פנימי). הוא יוצר לתוך אוסף מודול Haskell
המכיל אוסף של הגדרות סוגים בתוספת כמה הצהרות מופעי מחלקה עבור קלט/פלט.

כדי להשתמש במודול שנוצר, עליך לייבא אותו, וגם לייבא
Text.XML.HaXml.XmlContent. כדי לקרוא ולכתוב קבצי XML כערכים מהסוגים המוצהרים,
השתמש בחלק מפונקציות הנוחות של XmlContent.

תצטרכו ללמוד את הצהרות הסוג שנוצרות אוטומטית כדי לכתוב הצהרות משלכם.
קוד המשתמש בהם - אבל לרוב הדברים יש הקבלות די ברורות למבנה ה-DTD.

מגבלות


ה-Haskell שנוצר מכיל הפניות לסוגים כמו OneOf3 שבהם יש בחירה
בין n (במקרה זה 3) תגיות שונות. נכון לעכשיו, המודול Text.XML.HaXml.OneOfN
מגדיר את הסוגים הללו עד n=20. אם ה-DTD שלך דורש אפשרויות גדולות יותר, השתמש בכלי
MkOneOf כדי לייצר את הגודל הנוסף או טווח הגדלים הדרושים לך.

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

שמות מאפיינים מתורגמים לשדות בעלי שם: אבל מכיוון ש-Haskell לא מאפשר שדות שונים
סוגים בעלי אותו שדה בעל שם, משמעות הדבר היא שקובץ ה-XML שלך משתמש באותו שם
עבור מאפיינים דומים בתגים שונים היו קורסים ונשרפים. תיקנו זאת על ידי
שילוב שם התג בשדה בעל השם בנוסף לשם התכונה, לדוגמה
tagAttr במקום סתם attr. מכוער יותר, אבל יותר נייד.

מרחבי שמות של XML. נכון לעכשיו, אנחנו פשוט משלבים את מזהה מרחב השמות לתוך כל שם תג.
אשר משתמש בו. כנראה שהדרך הנכונה לעשות זאת היא להתייחס למרחב השמות כאל מרחב נפרד
מודול מיובא, ולכן מתרגם את קידומת מרחב השמות לקידומת מודול.
זה נשמע נכון? (זה עדיין לא מיושם.)

תת-קבוצה חיצונית. מאז גרסה 1.00 של HaXml, אנו תומכים בתת-קבוצה חיצונית של XML DTD.
כלומר, אנחנו יכולים לקרוא ולנתח חבורה שלמה של קבצים כחלק מאותו DTD, ואנחנו מכבדים
סעיפים מותנים של INCLUDE ו-IGNORE. קבצי sub-DTD חייבים להיות זמינים באופן מקומי - אנחנו
אל תחפש אותם ברשת.

ישנם כמה חלקים שוליים של ה-DTD שאנחנו לא לגמרי בטוחים לגביהם, כמו Tokenised
סוגים וסוגי סימון. בפרט, אין בדיקת תוקף של סוגי סימונים חיצוניים אלה
הפניות. אם אתם מוצאים בעיה, שלחו לנו דוא"ל:
מלקולם.וואלאס@cs.york.ac.uk

זכויות יוצרים


הספרייה והכלים של HaXml נכתבו על ידי ומוגנים עליהם בזכויות יוצרים
זכויות יוצרים © 1998 – 2006 מלקולם וואלאס וקולין רנסימן

הספרייה משלבת את המודול Text.ParserCombinators.HuttonMeijerWallace
זכויות יוצרים © 1996 גרהם האטון ואריק מאייר

עם שינויים
זכויות יוצרים © 1998 - 2000 מלקולם וואלאס

ועשויים גם להשתמש או לשלב את המודול Text.PrettyPrint.HughesPJ
זכויות יוצרים © 1996 - 1997 ג'ון יוז וסיימון פייטון ג'ונס

ספריית HaXml היא ברישיון תחת תנאי הרישיון הציבורי של GNU Lesser General Public License
(LGPL), למעט החריג המיוחד הבא:

כהקלה של סעיף 6 של LGPL, בעלי זכויות היוצרים של ספרייה זו נותנים
הרשאה להשתמש, להעתיק, לקשר, לשנות ולהפיץ, קוד אובייקט בינארי בלבד
גרסאות של קובץ הפעלה המקושר לספרייה, מבלי לדרוש אספקת
כל מנגנון לשנות או להחליף את הספרייה ולקשר מחדש (סעיפים 6a, 6b, 6c, 6d,
6ה), בתנאי שכל שאר התנאים של סעיף 6 יתקיימו.

כלי HaXml Xtract, Validate, DtdToHaskell ו-MkOneOf, מורשים תחת התנאים
של GNU General Public License (GPL).

ספרייה וערכת כלים זו מופצת בתקווה שהיא תהיה שימושית, אך ללא
כל אחריות; אפילו ללא האחריות המשתמעת של סחירות או התאמה ל-A
מטרה מסוימת. עיין ברישיונות GNU לפרטים נוספים.

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



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