Linux за българи: Форуми

Програмиране => Web development => Темата е започната от: boris2001 в May 01, 2011, 21:53



Титла: Xml ???
Публикувано от: boris2001 в May 01, 2011, 21:53
От скоро се чудя какво е XML. Да не е нещо като Html?
Като JavaScript? Що за чудо е това ???


Титла: Re: Xml ???
Публикувано от: romeo_ninov в May 01, 2011, 22:05
От скоро се чудя какво е XML. Да не е нещо като Html?
Като JavaScript? Що за чудо е това ???
Не, нещо като SGML е. И гугъл не е мръсна дума. Език за описание на информацията. При html се описва как да изглежда, при xml каква е


Титла: Re: Xml ???
Публикувано от: kiko_99319 в May 01, 2011, 22:05
http://en.wikipedia.org/wiki/XML ($2)


Титла: Re: Xml ???
Публикувано от: boris2001 в May 02, 2011, 09:35
http://en.wikipedia.org/wiki/XML ($2)
Прочетох го, но не разбрах как се работи с него . Разбрах какво е, но как да го използвам ?


Титла: Re: Xml ???
Публикувано от: romeo_ninov в May 02, 2011, 10:23
http://en.wikipedia.org/wiki/XML ($2)
Прочетох го, но не разбрах как се работи с него . Разбрах какво е, но как да го използвам ?
За какво да го ползваш? И защо точно XML? Повечето програми, които използват файлове за конфигурация ползват нормални текстови файлове


Титла: Re: Xml ???
Публикувано от: boris2001 в May 02, 2011, 10:35
Ами искам да знам какво е това и как се използва.


Титла: Re: Xml ???
Публикувано от: b2l в May 02, 2011, 11:04
Ами искам да знам какво е това и как се използва.

Човек, ти си на 9 или 10 години, за какво искаш да си отровиш живота още от малък :)?


Титла: Re: Xml ???
Публикувано от: romeo_ninov в May 02, 2011, 11:12
Ами искам да знам какво е това и как се използва.
този формат се използва за да се пази структурирана информация, например web страница, конфигурация, данни. След това ти трябва парсер, валидатор и т.н. за да можеш да четеш, търси, проверяваш за валидност на структурата


Титла: Re: Xml ???
Публикувано от: Naka в May 04, 2011, 23:38
Например OpenOffice записва документите в xml формат. Файла който прави xxxxx.odt е нищо повече от zip-нат xml.

ето ти пример: един документ написан на ОО, само с един лист и само с една фраза най-отгоре - 'Hello World'
а ето как той го е кодирал вътрешно.
Код
GeSHi (XML):
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <office:document-content>
  3. <office:body>
  4. <office:text>
  5. <office:forms form:automatic-focus="false" form:apply-design-mode="false"/>
  6. <text:sequence-decls>
  7. <text:sequence-decl text:display-outline-level="0" text:name="Illustration"/>
  8. <text:sequence-decl text:display-outline-level="0" text:name="Table"/>
  9. <text:sequence-decl text:display-outline-level="0" text:name="Text"/>
  10. <text:sequence-decl text:display-outline-level="0" text:name="Drawing"/>
  11. </text:sequence-decls>
  12. <text:p text:style-name="Standard">Hello World</text:p>
  13. <text:p text:style-name="Standard"/>
  14. </office:text>
  15.  
  16. </office:body>
  17. </office:document-content>

е поорязах ти го примера оттук-оттам, за да е по-пригледно. Обаче изобщо не се мъчи да разбереш какво означават таговете. Никой не знае - те и от ОО сигурно не си знаят синтаксиа. Това си е само пример да добиеш представа как изглежда реален xml.






Титла: Re: Xml ???
Публикувано от: Naka в May 05, 2011, 00:12
А сетих се още едни пример: Любимата ми игричка - Scorched3d. Всичко се описва в xml файлове - модовете, оръжията ,терена, ботовете.....

например ето ти част от основният мод  дето е описана атомна бомба:

Код
GeSHi (XML):
  1. <accessory>
  2. <name>Nuke</name>
  3. <armslevel>4</armslevel>
  4. <description>A very large explosive projectile weapon.</description>
  5. <icon>nuke.bmp</icon>
  6. <bundlesize>2</bundlesize>
  7. <cost>12000</cost>
  8. <activationsound>shoot/xlarge.wav</activationsound>
  9. <model type='MilkShape'>data/accessories/fatman/fatman.txt</model>
  10. <accessoryaction type='WeaponProjectile'>
  11. <shieldhurtfactor>1.2</shieldhurtfactor>
  12. <projectilemodel type='MilkShape'>data/accessories/fatman/fatman.txt</projectilemodel>
  13. <collisionaction type='WeaponExplosion'>
  14. <hurtamount>1.0</hurtamount>
  15. <deform>down</deform>
  16. <size>18</size>
  17. <createmushroomamount>1.0</createmushroomamount>
  18. <minlife>0.5</minlife>
  19. <maxlife>1.5</maxlife>
  20. <explosionshake>4.0</explosionshake>
  21. <explosiontexture>exp00</explosiontexture>
  22. <explosionsound>explosions/xlarge.wav</explosionsound>
  23. </collisionaction>
  24. </accessoryaction>
  25. </accessory>

А какво означават таговете, опциите на таговете и как се използват са решили самите девелопър-и.
http://www.scorched3d.co.uk/wiki/index.php/Scorched3D_v42


T.e. примерно решаваш да правиш мод. Четеш документацията за синтаксиса, пишеш си XML файловете, а пък енджина на играта ги чете, валидира и интерпретира и съответно изобразява сцената която си описал.



Титла: Re: Xml ???
Публикувано от: VladSun в May 05, 2011, 12:52
В XML файл описваш списъци/йерархии от структури за данни както и техните данни. Това е най-простият вариант:

Код
GeSHi (XML):
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Address>
  3.  <Recipient>Mr. Walter C. Brown</Recipient>
  4.  <House>49</House>
  5.  <Street>Featherstone Street</Street>
  6.  <Town>LONDON</Town>
  7.  <PostCode>EC1Y 8SY</PostCode>
  8.  <Country>UK</Country>
  9. </Address>
  10.  

Би могъл в XML файла да укажеш каква "XML schema" ще се използва:

Код
GeSHi (XML):
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  3.  <xs:element name="Address">
  4.    <xs:complexType>
  5.      <xs:sequence>
  6.        <xs:element name="Recipient" type="xs:string" />
  7.        <xs:element name="House" type="xs:string" />
  8.        <xs:element name="Street" type="xs:string" />
  9.        <xs:element name="Town" type="xs:string" />
  10.        <xs:element name="County" type="xs:string" minOccurs="0" />
  11.        <xs:element name="PostCode" type="xs:string" />
  12.        <xs:element name="Country">
  13.          <xs:simpleType>
  14.            <xs:restriction base="xs:string">
  15.              <xs:enumeration value="FR" />
  16.              <xs:enumeration value="DE" />
  17.              <xs:enumeration value="ES" />
  18.              <xs:enumeration value="UK" />
  19.              <xs:enumeration value="US" />
  20.            </xs:restriction>
  21.          </xs:simpleType>
  22.        </xs:element>
  23.      </xs:sequence>
  24.    </xs:complexType>
  25.  </xs:element>
  26. </xs:schema>

В "XML schema"-та се дефинират правила и ограничения за създаване на даден тип XML документ и неговите елементи ( http://en.wikipedia.org/wiki/XML_schema ). Ето някои готови такива: http://en.wikipedia.org/wiki/List_of_XML_schemas

След като си създал XML файл можеш да го "претърсваш" за информация с XPath ( http://en.wikipedia.org/wiki/XPath ), чрез сравнително прост език:
Код
GeSHi (XML):
  1. *[@color]
ще намери всички елементи, които имат атрибут "color". ( http://www.w3schools.com/XPath/xpath_examples.asp ).

За обхождане на "колекции от елементи" можеш да използваш XQuery: http://en.wikipedia.org/wiki/XQuery#Examples

Не на последно място, можеш да трансформираш данните и структурите от този XML в друг структурен формат - прим. ХТМЛ (което е също XML със зададена схема), друг XML, прост текст и т.н.  За трансформацията се използва XSLT - http://en.wikipedia.org/wiki/XSLT .