Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
XML құжатының түрін сипаттау. XML схемалары
Description of a type of XML document
XML schemas in general
XML схемасы – XML құжатының түрін сипаттау болып табылады, әдетте, сол типтегі құжаттардың құрылымы мен мазмұнына қатысты шектеулер арқылы, XML-дің өзі қоятын негізгі синтаксистік шектеулерден асып түседі. Бұл шектеулер, әдетте, элементтердің ретін анықтайтын грамматикалық ережелердің, мазмұнның сәйкес болуын қадағалайтын логикалық шарттардың, элементтер мен атрибуттардың мазмұнын реттейтін дерек түрлерінің және бірегейлік, сілтемелік тұтастық сияқты арнайы ережелердің әртүрлі комбинацияларын қолдану арқылы білдіріледі. XML схемаларын жасау үшін арнайы тілдер әзірленген. XML спецификациясына тән құжат түрін анықтау тілі (DTD) – бұл салыстырмалы түрде мүмкіндіктері шектеулі схема тілі, бірақ XML-де схемаларды сипаттаудан басқа да қолданыс алады. Көп қолданылатын, кең мүмкіндіктерге ие екі XML схема тілі – XML Schema (үлкен S әрпімен) және RELAX NG. XML құжатын схемамен байланыстыру механизмі схема тіліне қарай өзгереді. Бұл байланыс XML құжатының ішіндегі белгілер арқылы немесе сыртқы құралдар арқылы жүзеге асырылуы мүмкін. XML схемасының анықтамасы көбінесе XSD деп аталады.
An XML schema is a description of a type of XML document, typically expressed in terms of constraints on the structure and content of documents of that type, above and beyond the basic syntactical constraints imposed by XML itself. These constraints are generally expressed using some combination of grammatical rules governing the order of elements, Boolean predicates that the content must satisfy, data types governing the content of elements and attributes, and more specialized rules such as uniqueness and referential integrity constraints. There are languages developed specifically to express XML schemas. The document type definition (DTD) language, which is native to the XML specification, is a schema language that is of relatively limited capability, but that also has other uses in XML aside from the expression of schemas. Two more expressive XML schema languages in widespread use are XML Schema (with a capital S) and RELAX NG. The mechanism for associating an XML document with a schema varies according to the schema language. The association may be achieved via markup within the XML document itself, or via some external means. The XML Schema Definition is commonly referred to as XSD.
Жақсылық тексеру
XML құжатының схемаға сәйкес келетінін тексеру процесі – валидация деп аталады, бұл XML-дің негізгі ұғымынан, синтаксистік дұрыс қалыптастырылуынан бөлек. Барлық XML құжаттары дұрыс қалыптастырылуы керек, бірақ XML талдаушысы "валидациялайтын" болмаса, құжаттың жарамды болуы міндетті емес, мұндай жағдайда құжат оған байланысты схемаға сәйкестігі бойынша да тексеріледі. DTD валидациялайтын талдаушылар ең көп таралған, бірақ кейбіреулері XML схемасын немесе RELAX NG-ді де қолдайды. Схемаға қатысты мысал құжатын валидациялау, XML талдаудан концептуалды түрде бөлек операция ретінде қарастырылуы мүмкін. Бірақ, практикада көптеген схема валидаторлары XML талдаушысымен біріктірілген.
The process of checking to see if a XML document conforms to a schema is called validation, which is separate from XML's core concept of syntactic well formedness. All XML documents must be well formed, but it is not required that a document be valid unless the XML parser is "validating", in which case the document is also checked for conformance with its associated schema. DTD validating parsers are most common, but some support XML Schema or RELAX NG as well. Validation of an instance document against a schema can be regarded as a conceptually separate operation from XML parsing. In practice, however, many schema validators are integrated with an XML parser.
Кемшіліктер
W3C XML схемасы күрделі және үйренуге қиын, бірақ бұл ішінара оның жай ғана тексеруден гөрі көп нәрсе жасауға тырысуынан туындайды (PSVI қараңыз). XML-де жазылу артықшылық болғанымен, кейбір жағынан кемшіліктері де бар. W3C XML схемасы тілі, әсіресе, өте сөзді болуы мүмкін, ал DTD қысқа және салыстырмалы түрде оңай өңделуі мүмкін. Сонымен қатар, WXS құжатты схемамен байланыстыратын ресми механизмі әлеуетті қауіпсіздік мәселесін тудыруы мүмкін. WXS тексерушілері URI арқылы кез келген онлайн-мекенжайға өтіп, ағынның екінші жағынан зиянды мазмұн алу қаупі бар. W3C XML схемасы DTD-нің құжатқа дерек элементтерін беру мүмкіндігінің көп бөлігін іске асырмайды. W3C XML схемасының элементтерге әдепкі атрибуттар қосу мүмкіндігі артықшылық болғанымен, ол кейбір жағынан кемшілік те болып табылады. Бұл XML файлы схемасыз қолданылмайтын болуы мүмкін, тіпті ол сол схема бойынша жарамды болса да. Нәтижесінде, мұндай XML құжатын пайдаланатын барлық қолданушылар W3C XML Schema спецификациясын іске асыруы керек, бұл минималистік немесе ескі XML талдағыштарды қолдану мүмкіндігін жояды. Бұл құжатты өңдеуді де баяулатуы мүмкін, себебі процессор екінші XML файлын (схеманы) жүктеуі және өңдеуі керек; алайда, схема әдетте кэште сақталады, сондықтан шығын тек алғашқы пайдалануда туындайды.
W3C XML Schema is complex and hard to learn, although that is partially because it tries to do more than mere validation (see PSVI). Although being written in XML is an advantage, it is also a disadvantage in some ways. The W3C XML Schema language, in particular, can be quite verbose, while a DTD can be terse and relatively easily editable. Likewise, WXS's formal mechanism for associating a document with a schema can pose a potential security problem. For WXS validators that will follow a URI to an arbitrary online location, there is the potential for reading something malicious from the other side of the stream. W3C XML Schema does not implement most of the DTD ability to provide data elements to a document. Although W3C XML Schema's ability to add default attributes to elements is an advantage, it is a disadvantage in some ways as well. It means that an XML file may not be usable in the absence of its schema, even if the document would validate against that schema. In effect, all users of such an XML document must also implement the W3C XML Schema specification, thus ruling out minimalist or older XML parsers. It can also slow down the processing of the document, as the processor must potentially download and process a second XML file (the schema); however, a schema would normally then be cached, so the cost comes only on the first use.
Құралдарды қолдау
WXS қолдауы көптеген ірі XML талдау пакеттерінде кездеседі. Xerces және .NET Framework-тің базалық сыныптар кітапханасы WXS тіркелгісін тексеруді қолдайды.
WXS support exists in a number of large XML parsing packages. Xerces and the NET Framework's Base Class Library both provide support for WXS validation.
RELAX NG
RELAX NG, W3C XML схемасының DTD-ге қарағанда ұсынатын көптеген артықшылықтарын қамтиды.
RELAX NG provides for most of the advantages that W3C XML Schema does over DTDs.