שאלה די בסיסית

שאלה די בסיסית

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

ראשית, אני מציע שתפשפש מעט בהודעות עבר שלי - מספר פעמים סקרתי בעבר את XML ממספר בחינות. שנית, XML משמש בגדול לתיאור מידע. תחת הההגדרה הרחבה של "מידע" - נופלות שתי קטגוריות עיקריות, כיום - 1) בין מערכות ובתוכן, עבור סטנדרטיזציה ולשימושי אינטגרציה. תחת קטגוריה זו מופיע פרוטוקול SOAP, אשר משמש כפרוטוקול הגישה ל-Web Services. אגב, זה נכון לכל Web Service ללא כל תלות בטכנולוגיה בה הוא מיושם - ג´אווה, CPP ועוד (כל שפה, בעצם). מה שמיושם למעשה הוא מסרי XML אשר עוברים בין המערכות והרכיבים. יתרון ה-XML לשימושים אלו הוא בפשטותו, בניתוקו העקרוני מתלויות טכנולוגיות XML ובסטנדרטיותו. 2) ניהול תכנים ובכלל זה שמירה, הפצה, החלפה וניהול. כל אותם תכנים לא מובנים שקיימים בארגון ומחוצה לו, אשר התקשנו לדחוס לתוך מסד הנתונים הטבלאי, מנוהלים בקלי קלות באמצעות XML והטכנולוגיות המשלימות. למשל - מסמכים, דוחות, הודעות, חוזרים, סרטים, קבצי מוזיקה, תמונות ועוד ועוד. XML מפשט את הניהול של אותם תכנים באמצעות התאמה למבנה הנדרש (הוא בר הרחבה = ניתן להתאימו בקלות + הוא הירארכי = התמונה השלמה). יתרון ה-XML הוא גם בסט הטכנולוגיות המקיפות אותו ומפשטות את היישום. למשל, XSL, אשר נועדה לייצר תצוגות שונות של אותו מסמך XML. למשל, מסמך XML של חשבוניות, יכול להיות מוצג בצורה מסויימת עבור לקוח, בצורה אחרת עבור חשב, בפורמט WORD עבור לקוח X ובפורמט XLS עבור לקוח Y. כל זאת, תוך פיתוח מהיר, סטנדרטי ובלי שום אלמנטים של כפילויות במסד הנתונים! בסיס הנתונים Oracle הוא מסד נתונים טבלאי ומאפשר באופן עקרוני לטפל בטבלאות. מנגד, XML הוא התמונה השלמה (אחרי הכל, אם תחשוב לרגע, טבלה היא מקרה מאוד פרטי של XML!) ובעל מאפיינים מהטבלאות המוכרות לנו. על מנת לנהל מסמכי XML במקרה שלך, ישנן שתי אפשרויות - 1) לשמור ב-Oracle כ-CLOB 2) לתת לשרת XML, אשר נועד לכך, לנהל את הנתונים. שאלות. קדימה.
 
הסבר מפורט - יפה - ובכן..

מאיפה להתחיל , אני רוצה להתחיל מההתחלה , אבל אני לא יודע איך סתם הורדתי משהו קטן מהרשת : <?xml version="1.0"?> <time-o-gram pri="important"> <to>Sarah</to> <subject>Reminder</subject> <message>Don´t forget to recharge K-9 <emphasis>twice a day</emphasis>. Also, I think we should have his bearings checked out. See you soon (or late). I have a date with some <villain>Daleks</villain>... </message> <from>The Doctor</from> </time-o-gram> אבל זה סתם טקסט שאני יכול לכווץ את הכותרות , אם אני לא טועה ב XML אני מחליט על הטאגים בניגוד ל HTML איך מפה אני משיך לאקסל , אקסס או בסוף לאוראקל.
 
בוא נתחיל

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

קודם כל אני מניח שאני לא צריך איזה אדיטור מיוחד לXML אני יכול להסתפק ב notepad ואקספלורר. הרקע שלי כרגע הוא באפליקציות של Oracle ואם אני צודק יש אפשרות להעביר תכני טבלאות מסביבה לסביבה (מדובר בסביבות unix ) (למשל להעביר תוכן של טבלה אחת לטבלה אחרת ע"י XML) חוץ מזה יש לי רקע ב VB יחד עם ACCESS אני מחפש קודם משהו קטן שייתן לי לטעום מה XML
 
מצויין.

אתה צודק בהחלט ואין צורך, לפחות כרגע, בעורך מיוחד ל-XML. ה-Notepad יספיק בהחלט. אם אני מחדד את הצורך, אתה רוצה להעביר נתונים בין טבלאות. המשמעות היא שאתה נדרש לשלוף נתונים מהטבלה בסביבה אחת, לאחר מכן לטעון אותם ל-XML ולאחר מכן לטעון נתונים לטבלה בסביבה אחרת מתוך ה-XML. לפיכך, ניתן לפתח ישום ב-VB, אשר ניגש לטבלאות ומחזיק את התכנים ב-XML. לאחר מכן, הוא יקרא את ה-XML ויבצע פעולת טעינה לטבלאות בסביבה השניה. בנוגע למבנה ה-XML, הסכמה, אני מציע שתשתמש במבנה שטוח, אשר אקוויוולנטי למבנה טבלאי. במילים אחרות, עליך לבנות סכמה עבור כל טבלה - מדובר על אלמנט ראשי ומתחתיו רק רמה הירארכית אחת, אשר מכילה למעשה את שמות העמודות בטבלה. לחילופין, אתה יכול גם לבנות סכמה אשר תכיל 3 רמות - ברמה הראשונה - אלמנט השורש, ברמה השנייה - שמות הטבלאות, וברמה השלישית (מתחת לכל טבלה) את שמות העמודות. האפשרות השניה צריכה להישקל בזהירות מול שיקולי ביצועים, זיכרון ועוד. אז, אם נסכם - 1. החלטה על מבנה ה-XML. 2. שליפה מ-Oracle לתוך XML. 3. טעינה מ-XML לתוך Oracle. איך אנחנו עכשיו ?
 

roee

New member
יש לאורקל כל מיני מחלקות XML

כמו הSQLXML בSQL SERVER. אתה יכול ליצא מידע אוטומטית מטבלה וכל מני דברים כאלה. לא הבנתי מה אתה מנסה לעשות
 
אלג´נטלי, כמו שאומרים.

ישנם כלים לטיפול ב-XML במסדי הנתונים הטבלאיים, אולם הם מאוד בעייתיים מסיבות רבות. לכן, אני מציע להדיר את הרגליים והידיים מכלי ה-XML שלהם, לפחות עד שיבשילו. מיקרוסופט כבר הכירה בכך, ואמורה להשיק שרת XML, אי שם במהלך 2003 (אם לא 2004).
 
מיקרוסופט מוציאה שרת XML? ../images/Emo2.gif

יש מקום עם פרטים על זה? גם אני מצטרף להמלצה. ניסיתי לעבוד עם ההרחבות XML של SQL SERVER 2000 - המצב היחיד שאפשר ממש לקבל מידע בצורה הירארכית זה ע"י XML EXPLICIT, וגם אחרי ימים של נסיונות לא הצלחתי לקבל מידע שנשמר בטבלה עם הירארכיה n רמות (כלומר לא מוגבל) כ XML נורמאלי. צריך להוציא את זה החוצה לXML שטוח יותר, ואז עם XSL להפוך את זה ל XML הירארכי יותר... רחוק מלהיות נוח.
 
אכן כן

הוא יהיה חלק מהגירסא הבאה של SQL Server, לפחות על פי התוכניות הנוכחיות (שהשתנו כבר מספר פעמים). שם קוד יוקון, אמור לצאת אי שם ב-2003 או ב-2004. מיקרוסופט הכירה בכך שעל מנת לנהל XML עם כל המשמעויות שלו, יש צורך במנוע ייעודי עם ממשק שתואם את טכנולוגיות הלווין. כמסורת מקרוסופט, היא צופה בשוק, וכאשר יש טכנולוגיה שמוכיחה את עצמה וקיים ביקוש, היא מפתחת (או רוכשת) טכנולוגיה כזו. אתה מוזמן לחפש ב-eWeek פרטים. הוא נחשב (לפחות בעיני) כאתר פרו-מיקרוסופט ויש בו פרטים רבים אודות הפיתוחים העתידיים של מיקרוסופט.
 
ובכן ככה

אכן אני רוצה למשל להעביר נתונים מטבלה לטבלה. קודם כל בכלל אני חושב שהבנתי שה XML זה כמו למעשה פורמט טקסטואלי עם היררכיות שלשני פלטפורמות שפות יש כלים לעבוד עם XML ולכן יש אפשרות להעביר מאחד לשני. למעשה זה שיפור של כתיבה מצורה אחת לקובץ טקסט וקריאה מהקובץ בצורה השנייה , פשוט פה לשני הצורות יש כלים לעבוד עם פורמט ה XML ונחזור לנושא. קודם כל יש לי פה בעיה לעבוד עם VB כי המחלקה שלנו לא מתעסקת עם זה ולכן כביכול אסור לי להביא VB ולהתקין. מה שכן ידידי מלמעלה ציין שיש לאוראקל מחלקות לעבודה עם XML לא ניתקלתי בהם עוד אבל אולי אפשר מצביע. לעומת זאת בבית יש לי VB ואני יכול לעבוד מול ACCESS האם ההנחה נכונה שכדי ש VB יעבוד מול קבצי XML אני צריך להוריד פונקציות או כל דבר אחר לעבודה ב VB עם XML ?
 
בוא נמשיך

ראשית, אני יכול לומר שאתה בהחלט הבנת את אחד העקרונות החשובים ביותר מאחורי XML - הסטנדרטיות. כיוון שהוא סטנדרטי (ומאומץ בחום ע"י כל התעשייה ללא יוצא מן הכלל), כל שנדרש היא יכולת עבודה עם XML בכל אחד מהקצוות. אין זה משנה מהי טכנולוגיית הפיתוח, התשתיות וכן הלאה בכל צד. XML יגשר על כל הפערים ויאפשר אינטגרציה מהירה ופתיחות מירבית. אגב, XML יכול לייצג כל סוג של תוכן ולא רק טקסט - גם אלמנטים בינאריים. אם אתייחס לנקודות שהעלת - 1. הצעתי את VB, כיוון שציינת שיש לך גישה לשפת הפיתוח. באותה מידה זו יכלה להיות כל סביבת פיתוח אחרת על גבי כל מערכת הפעלה. 2. ל-Oracle יש אכן מודולים של XML, אולם הם לא מומלצים. לפחות לא כרגע. 3. בנוגע לסביבה הטכנולוגית שלך בבית - על מנת לעבוד עם XML בסביבה הזו, יהיה לך נוח לעשות שימוש בחבילת ה-XML של מיקרוסופט - MSXML. היא מותקנת כחלק מהתקנת דפדפן האינטרנט. אם אין לך דפדפן חדיש, אולי תידרש להוריד מהאתר של מיקרוסופט את הגירסא היציבה האחרונה.
 

deja

New member
כלי XML

של Oracle מגירסה 8i ומעלה מומלצים, אני בעצמי השתמשתי בהם. יש XDK שהוא XML Developer´s Kits והוא קיים ל-Java ,C++ ,PL/SQL ועוד. יש גם XSU שהוא XML-SQL Utility המורכב מרכיבים שיושבים ב-Database עצמו ומשמשים לשליפה ולטעינת נתונים בפורמט XML. בגירסה 9i, יש אפילו אפשרות ליצור שדות מטיפוס XML. בקר באתר http://otn.oracle.com/index.html של Oracle.
 
למעלה