JavaRush /وبلاگ جاوا /Random-FA /مبانی XML برای برنامه نویس جاوا. قسمت 2 از 3
Ярослав
مرحله
Днепр

مبانی XML برای برنامه نویس جاوا. قسمت 2 از 3

در گروه منتشر شد

معرفی

سلام، خوانندگان عزیز مقاله من. این دومین مقاله از این سری در مورد XML است و این مقاله در مورد فضای نام XML و طرحواره XML صحبت خواهد کرد.
مبانی XML
اخیراً من خودم چیزی در این مورد نمی دانستم، اما به مطالب زیادی تسلط دارم و سعی خواهم کرد این دو موضوع مهم را با کلمات ساده توضیح دهم. می خواهم فوراً بگویم که طرحواره ها مکانیزم بسیار پیشرفته ای برای اعتبارسنجی اسناد XML هستند و بسیار کاربردی تر از DTD ها هستند، بنابراین مطالعه کاملی از آنها در اینجا وجود نخواهد داشت. بیا شروع کنیم :)

فضای نام XML

Namespace به معنای "فضای نام" است، اما در این مقاله من اغلب عبارت روسی را با فضای نام جایگزین می کنم، زیرا کوتاه تر و درک آن آسان تر است. فضای نام XML یک فناوری است که هدف اصلی آن اطمینان از منحصر به فرد بودن همه عناصر در یک فایل XML است و هیچ سردرگمی وجود ندارد. و از آنجایی که این دوره های جاوا هستند، همین فناوری در بسته های جاوا نیز موجود است. اگر بتوانیم دو کلاس با نام یکسان را در کنار هم قرار دهیم و از آنها استفاده کنیم، چگونه تعیین می کنیم که به کدام کلاس نیاز داریم؟ این مشکل توسط بسته ها حل می شود - ما می توانیم به سادگی کلاس ها را در بسته های مختلف قرار دهیم و آنها را از آنجا وارد کنیم، نام دقیق بسته مورد نظر و مسیر رسیدن به آن را مشخص کنیم یا به سادگی مسیر کامل کلاس مورد نظر را مشخص کنیم. مبانی XML برای برنامه نویس جاوا.  قسمت 2 از 3 - 1اکنون، ما می توانیم این کار را انجام دهیم:
public class ExampleInvocation {
    public static void main(String[] args) {
        // Creation экземпляра класса из первого пакета.
        example_package_1.Example example1 = new example_package_1.Example();

        // Creation экземпляра класса из второго пакета.
        example_package_2.Example example2 = new example_package_2.Example();

        // Creation экземпляра класса из третьего пакета.
        example_package_3.Example example3 = new example_package_3.Example();
    }
}
در XML Namespace همه چیز تقریباً یکسان است، فقط کمی متفاوت است. ماهیت یکسان است: اگر عناصر یکسان هستند (مانند کلاس ها)، پس ما فقط باید از آنها در فضای نام های مختلف استفاده کنیم (بسته ها را مشخص کنید)، سپس حتی اگر نام عناصر (کلاس ها) شروع به منطبق کنند، باز هم خواهیم داشت. دسترسی به یک عنصر خاص از فضا (بسته). به عنوان مثال: ما دو عنصر در XML داریم - پیش بینی (اوراکل) و پایگاه داده اوراکل.
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <oracle>
        <connection value="jdbc:oracle:thin:@10.220.140.48:1521:test1" />
        <user value="root" />
        <password value="111" />
    </oracle>

    <oracle>
        Сегодня вы будете заняты весь день.
    </oracle>
</root>
و هنگامی که این فایل XML را پردازش می کنیم، اگر به جای پایگاه داده یک پیش بینی دریافت کنیم و همچنین به عقب برگردیم، به طور جدی گیج خواهیم شد. برای رفع تصادم عناصر، می‌توانیم به هر یک از آنها فضای مخصوص به خود را برای تمایز بین آنها اختصاص دهیم. یک ویژگی خاص برای این وجود دارد - xmlns:prefix= "مقدار منحصر به فرد برای فضای نام". سپس می‌توانیم عناصر را پیشوند کنیم تا نشان دهیم که بخشی از فضای نام است (در اصل، ما باید یک مسیر بسته - فضای نام ایجاد کنیم، و سپس هر عنصر را با کدام بسته که متعلق به آن است، پیشوند کنیم).
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <database:oracle xmlns:database="Unique ID #1">
        <connection value="jdbc:oracle:thin:@10.220.140.48:1521:test1" />
        <user value="root" />
        <password value="111" />
    </database:oracle>

    <oracle:oracle xmlns:oracle="Unique ID #2">
        Сегодня вы будете заняты весь день.
    </oracle:oracle>
</root>
در این مثال، ما دو فضای نام را اعلام کردیم: پایگاه داده و اوراکل. اکنون می توانید از پیشوندهای فضای نام قبل از عناصر استفاده کنید. اگر چیزی در حال حاضر نامشخص است، نیازی به ترس نیست. در واقع، این بسیار ساده است. در ابتدا می خواستم این قسمت از مقاله را سریعتر بنویسم، اما بعد از چهارشنبه به این نتیجه رسیدم که باید بیشتر به این موضوع توجه کنم، زیرا به راحتی می توان گیج شد یا چیزی را نفهمید. اکنون توجه زیادی به ویژگی xmlns خواهد شد. و بنابراین، یک مثال دیگر:
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.fish-shop.com/">
    <gun:shop>
        <gun:guns>
            <gun:gun name="Revolver" price="1250$" max_ammo="7" />
            <gun:gun name="M4A1" price="3250$" max_ammo="30" />
            <gun:gun name="9mm Pistol" price="450$" max_ammo="12" />
        </gun:guns>
    </gun:shop>

    <fish:shop>
        <fish:fishes>
            <fish:fish name="Shark" price="1000$" />
            <fish:fish name="Tuna" price="5$" />
            <fish:fish name="Capelin" price="1$" />
        </fish:fishes>
    </fish:shop>
</root>
شما می توانید XML معمولی را با استفاده از تفنگ spaces برای ذخیره عناصر منحصر به فرد اسلحه و ماهی برای ماهیگیری عناصر منحصر به فرد را مشاهده کنید. می بینید که با ایجاد فضاها، ما از یک عنصر فروشگاهی برای دو چیز مختلف به طور همزمان استفاده کردیم - یک فروشگاه اسلحه و یک فروشگاه ماهی، و به لطف اینکه فضاها را اعلام کردیم، دقیقاً می دانیم که چه نوع فروشگاهی است. جالب‌ترین چیز در طرح‌ها آغاز می‌شود، زمانی که بتوانیم ساختارهای مختلف را با عناصر مشابه به این روش اعتبارسنجی کنیم. xmlns یک ویژگی برای اعلان فضای نام است که می تواند در هر عنصری مشخص شود. نمونه ای از اعلان فضای نام:
xmlns:shop= «https://barber-shop.com/»
بعد از اینکه کولون یک پیشوند است - این یک مرجع فضایی است که می تواند قبل از عناصر برای نشان دادن اینکه آنها از آن فضا آمده اند استفاده شود. مقدار xmlns باید یک STRING UNIQUE باشد. درک این موضوع بسیار مهم است: استفاده از پیوندهای وب سایت یا URI برای اعلام فضای نام بسیار رایج است. این قانون استاندارد است زیرا URI یا URL لینک منحصر به فرد است، اما اینجاست که بسیار گیج کننده می شود. فقط به یاد داشته باشید: مقدار می تواند هر رشته ای که می خواهید باشد، اما برای اطمینان از منحصر به فرد بودن و استاندارد بودن آن، باید از URL یا URI استفاده کنید. این واقعیت که می توانید از هر رشته ای استفاده کنید در مثال اوراکل نشان داده شده است:
xmlns:oracle="Unique ID #2"
xmlns:database="Unique ID #1"
وقتی فضای نامی را اعلام می‌کنید، می‌توانید آن را روی خود عنصر و همه عناصر درون آن استفاده کنید، بنابراین فضاهای نام اعلام‌شده در عنصر ریشه می‌توانند روی همه عناصر استفاده شوند. این را می توان در آخرین مثال مشاهده کرد و در اینجا یک مثال خاص تر آورده شده است:
<?xml version="1.0" encoding="UTF-8"?>
<root>
    <el1:element1 xmlns:el1="Element#1 Unique String">
        <el1:innerElement>

        </el1:innerElement>
    </el1:element1>


    <el2:element2 xmlns:el2="Element#2 Unique String">
        <el2:innerElement>

        </el2:innerElement>
    </el2:element2>


    <el3:element3 xmlns:el3="Element#3 Unique String">
        <el3:innerElement>
            <el1:innerInnerElement> <!-- Так нельзя, потому что пространство el1 объявлено только в первом элементе, потому может использовать только внутри первого element и его внутренних элементов. -->

            </el1:innerInnerElement>
        </el3:innerElement>
    </el3:element3>
</root>
در اینجا یک جزئیات مهم وجود دارد: همچنین یک فضای نام استاندارد در عنصر ریشه وجود دارد. اگر فضای نام دیگری را اعلام کنید، فضای پیش‌فرض را لغو می‌کنید و نمی‌توانید از آن استفاده کنید. سپس باید نوعی پیشوند فاصله را در مقابل عنصر ریشه قرار دهید، هر پیشوندی که قبلاً اعلام کردید. با این حال، این را نیز می توان فریب داد: می توانید فضای استاندارد را به صراحت اعلام کنید. فقط کافی است پس از xmlns از پیشوند استفاده نکنید، بلکه بلافاصله مقداری را یادداشت کنید، و تمام عناصر شما بدون پیشوند به این فضای نام خاص تعلق خواهند داشت. آخرین مثال از این استفاده کرد:
<root xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.fish-shop.com/">
ما فضای استاندارد را به صراحت اعلام کردیم تا نیازی به استفاده از تفنگ یا ماهی نباشد، زیرا عنصر ریشه موجودیت یک فروشگاه ماهیگیری یا یک سلاح نیست، بنابراین استفاده از هر یک از این فضاها منطقاً نادرست است. بعد: اگر xmlns:a و xmlns:b را ایجاد کرده اید، اما ارزش یکسانی دارند، این همان فضا است و منحصر به فرد نیستند. به همین دلیل است که همیشه باید از مقادیر منحصر به فرد استفاده کنید، زیرا نقض این قانون می تواند تعداد زیادی خطا ایجاد کند. به عنوان مثال، اگر ما فضاهایی مانند این را اعلام کنیم:
xmlns="https://www.standart-namespace.com/" xmlns:gun="https://www.gun-shop.com/" xmlns:fish="https://www.gun-shop.com/"
سپس فروشگاه ماهیگیری ما تبدیل به یک فروشگاه اسلحه می شود و پیشوند آن همچنان یک فروشگاه ماهی خواهد بود. اینها همه نکات اصلی فضاها هستند. من زمان زیادی را صرف جمع آوری همه آنها و کاهش آنها کردم، و سپس آنها را به وضوح بیان کردم، زیرا اطلاعات فضاهای اینترنت بسیار بزرگ است و اغلب فقط آب است، بنابراین بیشتر هر چیزی که در اینجا وجود دارد - خودم آن را از طریق آزمایشی یاد گرفتم و خطا . اگر هنوز سؤالی دارید، می توانید سعی کنید مطالب را با استفاده از پیوندهای انتهای مقاله بخوانید.

طرحواره XML

من می خواهم بلافاصله بگویم که این مقاله فقط نوک کوه یخ خواهد بود، زیرا موضوع بسیار گسترده است. اگر می خواهید با جزئیات بیشتری با طرح ها آشنا شوید و یاد بگیرید که چگونه آنها را با هر پیچیدگی بنویسید، در پایان مقاله پیوندی وجود دارد که همه چیز در مورد انواع مختلف، محدودیت ها، پسوندها و غیره خواهد بود. می خواهم با تئوری شروع کنم. طرح‌ها دارای قالب xsd. (تعریف طرح xml) هستند و جایگزین پیشرفته‌تر و محبوب‌تری برای DTD‌ها هستند: آنها همچنین می‌توانند عناصر ایجاد کنند، آنها را توصیف کنند و غیره. با این حال، پاداش های زیادی اضافه شده است: بررسی نوع، پشتیبانی از فضای نام و عملکرد گسترده تر. یادتان هست وقتی در مورد DTD صحبت می کردیم، یک نکته منفی وجود داشت که از فضاها پشتیبانی نمی کند؟ اکنون که این موضوع را مطالعه کردیم، توضیح خواهم داد: اگر امکان وارد کردن دو یا چند طرحواره از یک DTD وجود داشت که عناصر یکسانی در آن وجود داشت، برخورد (تصادف) داشتیم و اصلاً نمی‌توانستیم از آنها استفاده کنیم، زیرا مشخص نیست به کدام عنصر نیاز داریم. XSD این مشکل را حل می کند زیرا می توانید طرحواره ها را در یک فضای خاص وارد کرده و از آن استفاده کنید. اساساً، هر طرح XSD دارای یک فضای هدف است، به این معنی که طرحواره باید در چه فضایی در فایل XML نوشته شود. بنابراین، در خود فایل XML، ما فقط باید این فضاهای از پیش تعریف شده را در طرحواره ها ایجاد کنیم و پیشوندهایی را به آنها اختصاص دهیم و سپس طرحواره های لازم را به هر یک از آنها متصل کنیم، پس از آن می توانیم با خیال راحت از عناصر طرحواره استفاده کنیم و پیشوندهایی را جایگزین کنیم. فضایی که ما شماتیک ها را وارد کردیم. و بنابراین، ما یک مثال داریم:
<?xml version="1.0" encoding="UTF-8"?>
<house>
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</house>
ما می خواهیم آن را با یک طرحواره اعتبار سنجی کنیم. ابتدا به یک طرحواره نیاز داریم:
<?xml version="1.0"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.nedvigimost.com/">
    <element name="house">
        <complexType>
            <sequence>
                <element name="address" type="string" maxOccurs="unbounded" minOccurs="0" />
                <element name="owner" maxOccurs="unbounded" minOccurs="0" >
                    <complexType>
                        <sequence>
                            <element name="telephone" type="string" />
                        </sequence>
                        <attribute name="name" type="string" use="required"/>
                    </complexType>
                </element>
            </sequence>
        </complexType>
    </element>
</schema>
همانطور که می بینید، طرحواره ها نیز فایل های XML هستند. آنچه را که نیاز دارید مستقیماً در XML می نویسید. این طرحواره قادر است فایل XML را از مثال بالا تأیید کند. به عنوان مثال: اگر مالک نامی نداشته باشد، مدار این را می بیند. همچنین، به لطف عنصر ترتیب، همیشه باید ابتدا آدرس و سپس صاحب خانه بیاید. عناصر معمولی و پیچیده وجود دارد. عناصر منظم عناصری هستند که فقط برخی از انواع داده ها را ذخیره می کنند. مثال:
<element name="telephone" type="string" />
به این ترتیب عنصری را که یک رشته را ذخیره می کند، اعلام می کنیم. هیچ عنصر دیگری در داخل این عنصر نباید وجود داشته باشد. عناصر پیچیده ای نیز وجود دارد. عناصر پیچیده می توانند عناصر و ویژگی های دیگر را در خود ذخیره کنند. سپس نیازی به تعیین نوع نیست، بلکه فقط شروع به نوشتن یک نوع پیچیده در داخل عنصر کنید.
<complexType>
    <sequence>
        <element name="address" type="string" maxOccurs="unbounded" minOccurs="0" />
        <element name="owner" maxOccurs="unbounded" minOccurs="0" >
            <complexType>
                <sequence>
                    <element name="telephone" type="string" />
                </sequence>
                <attribute name="name" type="string" use="required"/>
            </complexType>
        </element>
    </sequence>
</complexType>
همچنین امکان انجام آن متفاوت وجود داشت: می توانید یک نوع پیچیده را جداگانه ایجاد کنید و سپس آن را به نوع جایگزین کنید. فقط در هنگام نوشتن این مثال، به دلایلی لازم بود که فضا را تحت نوعی پیشوند اعلام کنید و از پیشوند استاندارد استفاده نکنید. به طور کلی، اینطور معلوم شد:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.nedvigimost.com/">
    <xs:element name="house" type="content" />

    <xs:complexType name="content">
        <xs:sequence>
            <xs:element name="address" type="xs:string" maxOccurs="unbounded" minOccurs="0" />
            <xs:element name="owner" maxOccurs="unbounded" minOccurs="0" >
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="telephone" type="xs:string" />
                    </xs:sequence>
                    <xs:attribute name="name" type="xs:string" use="required"/>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
به این ترتیب، ما می توانیم انواع خود را جداگانه ایجاد کنیم و سپس آنها را در جایی در ویژگی type جایگزین کنیم. این بسیار راحت است زیرا به شما امکان می دهد از یک نوع در مکان های مختلف استفاده کنید. من می خواهم در مورد اتصال مدارها و پایان دادن به اینجا بیشتر صحبت کنم. دو راه برای اتصال یک مدار وجود دارد: به یک فضای خاص و فقط اتصال.

اولین راه برای اتصال مدار

روش اول فرض می کند که مدار دارای فضای هدف مشخصی است. با استفاده از ویژگی targetNamespace در عنصر طرح مشخص می شود. سپس کافی است همین فضا را در فایل XML ایجاد کنید و سپس طرح را در آنجا بارگذاری کنید:
<?xml version="1.0" encoding="UTF-8"?>
<nedvig:house xmlns:nedvig="https://www.nedvigimost.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.nedvigimost.com/ example_schema1.xsd">
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</nedvig:house>
درک دو خط مهم است:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemeLocation="https://www.nedvigimost.com/ example_schema1.xsd"
خط اول - فقط آن را به خاطر بسپارید. به آن به عنوان یک شی فکر کنید که به بارگیری شماتیک ها در جایی که باید بروند کمک می کند. خط دوم یک دانلود خاص است. schemaLocation لیستی از مقادیر به شکل "value - value" را می پذیرد که با فاصله جدا شده اند. اولین آرگومان فضای نام است که باید با فضای نام هدف در طرح (مقدار targetNamespace) مطابقت داشته باشد. آرگومان دوم مسیر نسبی یا مطلق به طرحواره است. و از آنجایی که این مقدار LIST است، می توانید در مثال بعد از طرح فاصله بگذارید و مجدداً فضای مورد نظر و نام طرح دیگری را وارد کنید و به هر میزانی که می خواهید ادامه دهید. مهم:برای اینکه طرحواره بعداً چیزی را تأیید کند، باید این فضا را اعلام کرده و با یک پیشوند از آن استفاده کنید. به مثال آخر با دقت نگاه کنید:
<?xml version="1.0" encoding="UTF-8"?>
<nedvig:house xmlns:nedvig="https://www.nedvigimost.com/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.nedvigimost.com/ example_schema1.xsd">
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</nedvig:house>
ما این فضای هدف را روی پیشوند nedvig ایجاد کردیم و سپس از آن استفاده کردیم. بنابراین، عناصر ما شروع به تأیید اعتبار کردند، زیرا ما شروع به استفاده از فضایی کردیم که در آن فضای طرحواره هدف ارجاع داده شده است.

راه دوم برای اتصال مدار

راه دوم برای اتصال مدار به این معناست که مدار فضای هدف خاصی ندارد. سپس می توانید به سادگی آن را به فایل XML متصل کنید و آن را تأیید می کند. این کار تقریباً به همین صورت انجام می شود، فقط شما نمی توانید به هیچ وجه در فایل XML فاصله ها را اعلام کنید، بلکه به سادگی طرحواره را متصل کنید.
<?xml version="1.0" encoding="UTF-8"?>
<house xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="example_schema1.xsd">
    <address>ул. Есенина, дом №5</address>
    <owner name="Ivan">
        <telephone>+38-094-521-77-35</telephone>
    </owner>
</house>
همانطور که می بینید، این کار با استفاده از noNamespaceSchemaLocation و مشخص کردن مسیر schema انجام می شود. حتی اگر طرحواره فضای هدف نداشته باشد، سند اعتبار سنجی می شود. و آخرین لمس: ما می توانیم نمودارهای دیگر را به نمودارها وارد کنیم و سپس از عناصر یک نمودار در نمودار دیگر استفاده کنیم. بنابراین، ما می‌توانیم از عناصری در برخی مدارها استفاده کنیم که قبلاً در مدارهای دیگر هستند. مثال:

طرحواره ای که در آن نوع مالک اعلام شده است:

<?xml version="1.0" encoding="UTF-8" ?>
<schema targetNamespace="bonus" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
        <complexType name="owner">
            <all>
                <element name="telephone" type="string" />
            </all>
            <attribute name="name" type="string" />
        </complexType>
</schema>

طرح دوم که از نوع مالک از طرح اول استفاده می کند:

<?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="main" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:bonus="bonus" elementFormDefault="qualified">
    <import namespace="bonus" schemaLocation="xsd2.xsd" />
    <element name="house">
        <complexType>
            <all>
              <element name="address" type="string" />
                <element name="owner" type="bonus:owner" />
            </all>
        </complexType>
    </element>
</schema>
طرح دوم از ساختار زیر استفاده می کند:
<import namespace="bonus" schemaLocation="xsd2.xsd" />
با استفاده از آن، انواع و عناصر را از یک طرحواره به طرحی دیگر به فضای جایزه وارد کردیم. بنابراین، ما به نوع bonus:owner دسترسی داریم. و در خط بعدی از آن استفاده کردیم:
<element name="owner" type="bonus:owner" />
همچنین کمی به خط زیر توجه کنید:
elementFormDefault="qualified"
این ویژگی در schema اعلان می شود و به این معنی است که در فایل های XML، هر عنصر باید با یک پیشوند صریح قبل از آن اعلان شود. اگر وجود ندارد، ما فقط باید یک عنصر خارجی را با یک پیشوند اعلام کنیم، و همچنین باید پیشوندهایی را در تمام عناصر داخل تنظیم کنیم، که به وضوح نشان می دهد که دقیقاً از عناصر این طرح استفاده می کنیم. و در اینجا، در واقع، نمونه ای از یک فایل XML است که توسط یک طرحواره تأیید شده است که طرحواره دیگری را وارد کرده است:
<?xml version="1.0" encoding="UTF-8"?>
<nedvig:house xmlns:nedvig="main" xmlns:bonus="bonus" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="main xsd.xsd">
    <nedvig:address>ул. Есенина, дом №5</nedvig:address>
    <nedvig:owner name="Ivan">
        <bonus:telephone>+38-094-521-77-35</bonus:telephone>
    </nedvig:owner>
</nedvig:house>
در خط:
<bonus:telephone>+38-094-521-77-35</bonus:telephone>
ما باید فضای نام جایزه را به صراحت اعلام کنیم، که به فضای هدف طرح اول اشاره می کند، زیرا elementFormDefault واجد شرایط است (بررسی کنید)، بنابراین همه عناصر باید به صراحت فضای خود را نشان دهند.

پایان مقاله

مقاله بعدی آخرین مقاله از این سری خواهد بود و در حال حاضر در مورد پردازش فایل های XML با استفاده از جاوا خواهد بود. ما یاد خواهیم گرفت که اطلاعات را از راه های مختلف به دست آوریم و غیره. امیدوارم که این مقاله مفید بوده باشد و حتی اگر جایی در اینجا خطایی وجود داشته باشد، چیزهای مفید و جدیدی را به شما آموزش دهد یا شاید فقط به شما این فرصت را بدهد که فایل های XML را بهتر درک کنید. برای کسانی که مایلند این موضوع را با جزئیات بیشتری بررسی کنند، تصمیم گرفتم مجموعه کوچکی از پیوندها را جمع آوری کنم:
  • XSD Simple Elements - با شروع از این مقاله، شروع به خواندن کنید و به جلو حرکت کنید، تمام اطلاعات در مورد طرح ها در آنجا جمع آوری شده است و کمابیش واضح و فقط به زبان انگلیسی توضیح داده شده است. می توانید از مترجم استفاده کنید.

  • ویدیو در فضای نام، همیشه مفید است که به دیدگاه دیگری در مورد چیزی گوش دهید، اگر دیدگاه اول واضح نباشد.

  • XML فضای نام نمونه خوبی از استفاده از فضاهای نام است و کاملاً جامع است.

  • مبانی XML - فضاهای نام - یک مقاله کوتاه دیگر در مورد فضاهای نام.

  • مبانی استفاده از طرحواره XML برای تعریف عناصر نیز یک مرجع بسیار مفید در طرحواره ها است، اما شما باید آن را به آرامی و با دقت بخوانید و در مطالب جستجو کنید.

این همه مطمئن است، امیدوارم اگر می خواهید چیز عمیق تری از این یاد بگیرید، پیوندها به شما کمک کند. من خودم همه این منابع را مرور کردم، همه مطالب را مطالعه کردم، و در کل، اینها مفیدترین منابعی بودند که به آنها نگاه کردم، زیرا هر یک از آنها یا درک مطالبی را که قبلاً در جایی دیگر خوانده بودم بهبود بخشیدند، یا اجازه دهید چیز جدیدی یاد بگیرم، اما کارهای زیادی فقط در حین تمرین انجام شد. بنابراین، برای کسانی که واقعاً می خواهند همه اینها را کاملاً خوب درک کنند، توصیه من این است: فضاهای نام را مطالعه کنید، سپس نحوه اتصال آسان طرحواره ها به فایل های XML، و سپس نحوه نوشتن ساختار سند در طرحواره ها. و از همه مهمتر تمرین. با تشکر از توجه شما و آرزوی موفقیت در برنامه نویسی :) مقاله قبلی: [مسابقه] مبانی XML برای برنامه نویس جاوا - قسمت 1 از 3 مقاله بعدی: [مسابقه] مبانی XML برای برنامه نویس جاوا - قسمت 3.1 از 3 - SAX
نظرات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION