Extensible Markup Language (XML) provides a significant advance in how data is described and exchanged by Web-based applications using a simple, flexible standards-based format. Hypertext markup language (HTML) enables universal methods for viewing data; XML provides universal methods for working directly with data.
XML is the universal language for data on the Web. It gives developers the power to deliver structured data from a wide variety of applications to the desktop for local computation and presentation. XML allows the creation of unique data formats for specific applications. It is also an ideal format for server-to-server transfer of structured data.
The document type definition (DTD) defines the valid syntax of a class of XML documents. That is, it lists a number of element names, which elements can appear in combination with which other ones, what attributes are available for each element type, etc. A DTD uses a different syntax from that used by XML documents.
Schemas combine concepts from DTDs, relational databases, and object-oriented design. Schemas, outlined in the XML-Data proposal submitted to the W3C, can describe the structure of XML documents, databases, direct-label graphs, and other, similar organizations of data. Schemas supply additional semantic information to documents that are not available in DTDs and contain new facilities such as data types, inheritance, and extensibility. In addition, schemas use the same syntax as XML documents, rather than the unique syntax used by DTDs. Schema components are reusable through the facility of XML namespaces.
See www.microsoft.com/xml/ for more information.
Notes:
Element - fundamental logical unit of an XML document, used to store the system's data.
Attribute - source of additional information about an element, used for meta-data (e.g. datatypes).
Entity - a reference to other data that often acts as an abbreviation or a shortcut.
The following table lists the data types supported by the MSXML parser in Microsoft® Internet Explorer 5.0.
| Data type | Parse type | Automation types | COM types |
|---|---|---|---|
| string | pcdata | VT_BSTR | BSTR |
| number | A number, with no limit on digits, can potentially have a leading sign, fractional digits, and, optionally, an exponent. Punctuate using U.S. English rules. | VT_BSTR | BSTR |
| int | A number, with no optional sign, no fractions, no exponent | VT_14 | long |
| float | Same as for "number" | VT_R8 | double |
| fixed.14.4 | Same as for "number," but no more than 14 digits to the left of the decimal point and no more than 4 to the right | VT_CY | large_integer |
| boolean | "1" or "0" | VT_BOOL | int |
| dateTime.iso8601 | A date in a subset ISO 8601 format, with optional time and no optional zone. Fractional seconds can be as precise as nanoseconds. | VT_DATE | long |
| dateTime.iso8601tz | A date in a subset ISO 8601 format, with optional time and optional zone. Fractional seconds can be as precise as nanoseconds. | VT_DATE | long |
| date.iso8601 | A date in a subset ISO 8601 format (no time) | VT_DATE | long |
| time.iso8601 | A time in a subset ISO 8601 format, with no date and no time zone | VT_DATE | long |
| time.iso8601tz | A time in a subset ISO 8601 format, with no date but an optional time zone | VT_DATE | long |
| i1 | A number, with optional sign, no fractions, no exponent | VT_I1 | char |
| i2 | A number, with optional sign, no fractions, no exponent | VT_I2 | short |
| i4 | A number, with optional sign, no fractions, no exponent | VT_I4 | long |
| i8 | A number, with optional sign, no fractions, no exponent | VT_CY | large_integer |
| ui1 | A number, unsigned, no fractions, no exponents | VT_UI1 | unsigned char |
| ui2 | A number, unsigned, no fractions, no exponents | VT_UI2 | unsigned short |
| ui4 | A number, unsigned, no fractions, no exponents | VT_UI4 | unsigned long |
| ui8 | A number, unsigned, no fractions, no exponents | VT_CY | unsigned large_integer |
| r4 | Same as "number" | VT_FLOAT | float |
| r8 | Same as "number" | VT_DOUBLE | double |
| float.IEEE.754.32 | Same as "number" | VT_FLOAT | float |
| float.IEEE.754.64 | Same as "number" | VT_DOUBLE | double |
| uuid | Hexadecimal digits representing octets, optional embedded hyphens that should be ignored | VT_BSTR | GUID |
| uri | Universal Resource Identifier | VT_BSTR | BSTR |
| bin.hex | Hexadecimal digits representing octets | VT_ARRAY | safearray or stream |
| char | String | VT_UI2 | wchar |
| string.ansi | String containing only ascii characters <= 0XFF | VT_ARRAY | safearray |