Kiến thức cơ bản về XML dành cho người mới bắt đầu Lý thuyết và thực hành ngôn ngữ XML XML là phần bổ sung cho HTML

Hôm nay chúng ta sẽ bắt đầu xem xét một cách rất phổ biến và tiện lợi Ngôn ngữ đánh dấu XML. Vì định dạng trình bày dữ liệu này rất linh hoạt và phổ quát, đồng thời nó có thể được sử dụng ở hầu hết mọi nơi, điều này có nghĩa là tận tâm với điều gì đó. Do đó, một lập trình viên mới vào nghề sớm hay muộn sẽ phải đối mặt với ngôn ngữ này và việc bạn làm chính xác là gì không quan trọng, dù là lập trình web hay quản trị cơ sở dữ liệu, bởi vì mọi người đều sử dụng XML và bạn cũng sẽ sử dụng nó để thực hiện các tác vụ. bạn cần.

Như thường lệ, chúng ta sẽ bắt đầu với lý thuyết, hãy xem nó là loại ngôn ngữ gì, tại sao nó tốt, cách sử dụng và nơi nó được sử dụng.

Định nghĩa ngôn ngữ XML

XML (Ngôn ngữ đánh dấu có thể mở rộng) là ngôn ngữ đánh dấu dữ liệu phổ quát và có thể mở rộng, độc lập với hệ điều hành và môi trường xử lý. Xml được sử dụng để trình bày một số dữ liệu nhất định dưới dạng cấu trúc và bạn có thể tự phát triển cấu trúc này hoặc tùy chỉnh nó cho một chương trình cụ thể hoặc một số dịch vụ. Đó là lý do tại sao ngôn ngữ này được gọi là có thể mở rộng và đây là ưu điểm chính của nó, khiến nó được đánh giá cao.

Như bạn đã biết, có khá nhiều ngôn ngữ đánh dấu, chẳng hạn như ngôn ngữ HTML, nhưng tất cả chúng, bằng cách này hay cách khác, đều phụ thuộc vào bộ xử lý, ví dụ: cùng một html, mã mà trình duyệt phân tích cú pháp, được chuẩn hóa và không thể mở rộng, có các thẻ rõ ràng ở đó, cú pháp không thể vi phạm và trong xml bạn có thể tạo các thẻ của riêng mình, tức là. đánh dấu của bạn. Sự khác biệt chính giữa HTML và XML là html chỉ mô tả đánh dấu để hiển thị dữ liệu và xml là cấu trúc dữ liệu trừu tượng có thể được xử lý và hiển thị theo ý muốn của bạn ở bất kỳ đâu và do đó không cần phải so sánh các ngôn ngữ này, chúng có mục đích hoàn toàn khác nhau.

Như đã lưu ý ở trên, xml là một ngôn ngữ rất phổ biến và phổ quát, qua đó hầu hết tất cả các ứng dụng, cả web và chỉ dành cho máy tính, đều sử dụng nó để trao đổi thông tin, vì với sự trợ giúp của nó, bạn có thể rất dễ dàng trao đổi dữ liệu giữa các ứng dụng hoặc các dịch vụ thậm chí được viết bằng các ngôn ngữ khác nhau. Trong mối liên hệ này, mọi lập trình viên mới vào nghề tham gia vào bất kỳ chương trình nào đều phải có hiểu biết về XML. Nếu bạn muốn trở thành quản trị viên web, thì bạn chỉ cần biết XML và chúng tôi đã thảo luận về cách trở thành Quản trị viên WEB cũng như những điều bạn cần biết cho việc này.

Ví dụ: tôi đã từng có nhiệm vụ viết một dịch vụ nhất định sẽ trả về dữ liệu ở dạng xml theo yêu cầu, tức là. một kiểu phát triển của phần máy chủ của ứng dụng và tôi không biết ứng dụng khách nào sẽ xử lý dữ liệu này được viết bằng gì và tôi đã viết một dịch vụ trả về dữ liệu ở dạng xml và thế là xong, ứng dụng đã hoạt động hoàn hảo . Và đây chỉ là một ví dụ mà tôi phải giải quyết, nhưng bây giờ hãy tưởng tượng có bao nhiêu tổ chức khác nhau hợp tác và tận tâm phát triển phần mềm cũng như trao đổi dữ liệu, và tôi sẽ không ngạc nhiên khi dữ liệu này sẽ ở dạng xml.

Ví dụ: tôi đã từng có nhiệm vụ viết một dịch vụ nhất định sẽ trả về dữ liệu ở dạng xml theo yêu cầu, tức là. một kiểu phát triển của phần máy chủ của ứng dụng và tôi không biết ứng dụng khách nào sẽ xử lý dữ liệu này được viết bằng gì và tôi đã viết một dịch vụ trả về dữ liệu ở dạng xml và thế là xong, ứng dụng đã hoạt động hoàn hảo . Và đây chỉ là một ví dụ mà tôi phải giải quyết, nhưng bây giờ hãy tưởng tượng có bao nhiêu tổ chức khác nhau hợp tác và tận tâm phát triển phần mềm cũng như trao đổi dữ liệu, và tôi sẽ không ngạc nhiên khi dữ liệu này sẽ ở dạng xml.

Ngoài ra, tôi đã từng phải lưu trữ dữ liệu xml trong cơ sở dữ liệu MS SQL 2008 để thể hiện dữ liệu này tốt hơn và trao đổi nó giữa phần máy chủ và phần máy khách của ứng dụng, chúng ta đã thảo luận vấn đề này trong bài viết - Transact-sql - doing with xml .

Bản thân ngôn ngữ XML rất đơn giản và không thể bị nhầm lẫn trong đó; tất cả sự phức tạp phát sinh chính xác trong quá trình xử lý và tương tác của XML với các ứng dụng, công nghệ khác, tức là. mọi thứ xung quanh xml, đó là nơi bạn có thể dễ dàng bị nhầm lẫn.

Hôm nay chúng ta chỉ nói về những điều cơ bản của XML và sẽ không tập trung vào các công nghệ xử lý và tương tác với ngôn ngữ này, vì đây là tài liệu đúng, rất đồ sộ, nhưng tôi nghĩ trong tương lai chúng ta sẽ tiếp tục làm quen với các công nghệ liên quan .

Hãy chuyển sang thực hành. Và tôi sẽ viết tất cả các ví dụ mà chúng tôi sẽ xem xét trong Notepad++ chỉ vì nó rất tiện lợi, nhưng chúng tôi sẽ không nói về vấn đề này bây giờ vì chúng tôi đã thảo luận về vấn đề này trong bài viết - Notepad++ tốt cho người mới phát triển.

Thẻ XML

Ngôn ngữ XML sử dụng các thẻ ( thẻ có phân biệt chữ hoa chữ thường), nhưng không phải các thẻ giống như trong html mà là những thẻ do bạn tự nghĩ ra nhưng tài liệu xml cũng có cấu trúc rõ ràng, tức là. có thẻ mở và thẻ đóng, có thẻ lồng nhau và tất nhiên có các giá trị nằm trong các thẻ này. Nói cách khác, tất cả những gì bạn cần để có kiến ​​thức xml cơ bản chỉ là tuân theo các quy tắc này. Cùng với nhau, thẻ mở, thẻ đóng và giá trị được gọi là một phần tử và toàn bộ tài liệu xml bao gồm chính xác các phần tử cùng nhau tạo thành cấu trúc dữ liệu. Một tài liệu xml chỉ có thể có một phần tử gốc, hãy nhớ điều này, vì nếu bạn viết hai phần tử gốc thì sẽ bị lỗi.

Và đã đến lúc đưa ra một ví dụ về đánh dấu xml và ví dụ đầu tiên bây giờ là về cú pháp:

<Начало элемента> <Начало вложенного элемента>Giá trị phần tử lồng nhau

Như bạn có thể thấy, mọi thứ khá đơn giản và có thể có rất nhiều phần tử như vậy được lồng vào nhau.

Bây giờ hãy đưa ra một ví dụ về tài liệu xml thực:

Như các bạn thấy ở đây tôi chỉ đưa ra ví dụ về một loại catalog sách chứ tôi không khai báo tài liệu này, tức là. Tôi đã không viết một khai báo XML để thông báo cho ứng dụng sẽ xử lý dữ liệu này rằng dữ liệu XML nằm ở đây và nó được mã hóa ở dạng nào. Bạn cũng có thể viết nhận xét và thuộc tính, vì vậy hãy đưa ra một ví dụ về tài liệu như vậy:

Cuốn sách 1 Ivan Chỉ cần cuốn 1 Quyển 2 Serge Chỉ cần cuốn 2 Quyển 3 Cuốn tiểu thuyết Chỉ cần cuốn 3

Trong đó dòng đầu tiên là tuyên bố rằng đây là tài liệu XML và phải được đọc ở dạng mã hóa UTF-8.

Dữ liệu này không được xử lý sẽ trông như thế nào trong trình duyệt (Mozilla Firefox) chẳng hạn như sau:

Tôi hy vọng bạn hiểu rằng danh mục ở đây là phần tử gốc, bao gồm các phần tử sách, lần lượt bao gồm các phần tử tên, tác giả và nhận xét, và để làm ví dụ, tôi cũng đặt một số thuộc tính cho phần tử danh mục và phần tử sách .

Về những điều cơ bản, tôi nghĩ thế là đủ, vì nếu chúng ta ngày càng đi sâu hơn vào XML và tất cả các công nghệ liên quan đến ngôn ngữ này, thì bài viết này sẽ không bao giờ kết thúc. Vậy đó là tất cả cho ngày hôm nay. Tạm biệt!

XML là một định dạng rất phổ biến và linh hoạt hiện nay. Mọi lập trình viên nên hiểu nó, đơn giản là nó phải có. Nhiều công nghệ ngày nay đang tích cực sử dụng nó và những công nghệ hiện đại nằm trong số đó.

Giới thiệu

Xin chào các độc giả thân mến của bài viết của tôi. Tôi muốn nói ngay rằng đây chỉ là bài viết đầu tiên trong chuỗi ba bài viết của tôi. Mục tiêu chính của toàn bộ loạt bài này là giúp mỗi người đọc bắt đầu làm quen với XML và đưa ra, nếu không phải là một lời giải thích và hiểu biết đầy đủ, thì ít nhất cũng là một động lực thúc đẩy nó, giải thích những điểm và sự việc chính. Toàn bộ chu trình sẽ dành cho một đề cử – “Chú ý đến từng chi tiết”, và việc chia thành 3 bài được thực hiện nhằm phù hợp với giới hạn ký tự trong các bài viết và chia một lượng lớn tài liệu thành các phần nhỏ hơn để dễ hiểu hơn. Bài viết đầu tiên sẽ dành cho chính XML và nó là gì, cũng như một trong những cách tạo lược đồ cho các tệp XML - DTD. Để bắt đầu, tôi muốn viết một lời nói đầu nhỏ cho những người chưa quen với XML: không cần phải sợ hãi. XML không quá phức tạp và bất kỳ lập trình viên nào cũng nên hiểu vì đây là định dạng tệp rất linh hoạt, hiệu quả và phổ biến hiện nay để lưu trữ nhiều loại thông tin mà bạn muốn. XML được sử dụng trong Ant, Maven, Spring. Bất kỳ lập trình viên nào cũng cần có kiến ​​thức về XML. Bây giờ bạn đã tập hợp được sức mạnh và động lực, hãy bắt đầu học. Tôi sẽ cố gắng sắp xếp tất cả các tài liệu một cách đơn giản nhất có thể, chỉ thu thập những thứ quan trọng nhất và không đi sâu vào cỏ dại.

XML

Để giải thích rõ ràng hơn, tốt hơn nên hình dung XML bằng một ví dụ.< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> Thiên đường CNTT< / name> < offices> < office floor= "1" room= "1" > < employees> < employee> < name> Châm ngôn< / name> < job> Nhà phát triển phần mềm cấp trung< / job> < / employee> < employee> < name> Ivan< / name> < job> Nhà phát triển phần mềm trẻ< / job> < / employee> < employee> < name> Franklin< / name> < job> Nhà phát triển phần mềm trẻ< / job> < / employee> < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee> < name> Báo trước< / name> < job> Nhà phát triển phần mềm cấp trung< / job> < / employee> < employee> < name> Adam< / name> < job> Nhà phát triển phần mềm cấp trung< / job> < / employee> < employee> < name> Leroy< / name> < job> Nhà phát triển phần mềm trẻ< / job> < / employee> < / employees> < / office> < / offices> < / company>HTML và XML giống nhau về cú pháp vì chúng có chung một cha - SGML. Tuy nhiên, trong HTML chỉ có các thẻ cố định theo một tiêu chuẩn cụ thể, trong khi ở XML, bạn có thể tạo các thẻ, thuộc tính của riêng mình và nói chung, làm bất cứ điều gì bạn muốn để lưu trữ dữ liệu theo cách phù hợp với mình. Trên thực tế, bất kỳ ai biết tiếng Anh đều có thể đọc được các tệp XML. Ví dụ này có thể được mô tả bằng cách sử dụng một cái cây. Gốc cây- Công ty. Nó cũng là phần tử gốc (gốc) mà từ đó tất cả các phần tử khác hình thành. Mỗi tệp XML chỉ có thể có một phần tử gốc. Nó phải được công bố sau khai báo tệp xml(dòng đầu tiên trong ví dụ) và chứa tất cả các phần tử khác. Một chút về việc khai báo: nó bắt buộc và cần thiết để xác định tài liệu là XML. Nó có ba thuộc tính giả (thuộc tính đặc biệt được xác định trước): phiên bản (theo tiêu chuẩn 1.0), mã hóa (mã hóa) và độc lập (tự chủ: nếu có và các sơ đồ bên ngoài được kết nối với tài liệu thì sẽ xảy ra lỗi, mặc định là không). Yếu tố là các thực thể lưu trữ dữ liệu bằng cách sử dụng các phần tử và thuộc tính khác. Thuộc tính– đây là thông tin bổ sung về phần tử, được chỉ định khi thêm phần tử. Nếu dịch lời giải thích sang trường OOP, chúng ta có thể đưa ra ví dụ sau: chúng ta có một chiếc ô tô, mỗi chiếc ô tô có các đặc điểm (màu sắc, dung tích, nhãn hiệu, v.v.) - đây là các thuộc tính và có các thực thể bên trong ô tô : cửa ra vào, cửa sổ, động cơ, vô lăng là những yếu tố khác. Bạn có thể lưu trữ các thuộc tính dưới dạng các phần tử riêng lẻ hoặc dưới dạng thuộc tính, tùy theo mong muốn của bạn. Xét cho cùng, XML là một định dạng cực kỳ linh hoạt để lưu trữ thông tin về mọi thứ. Sau khi giải thích, chúng ta chỉ cần nhìn vào ví dụ trên để mọi thứ đâu vào đấy. Trong ví dụ này, chúng tôi đã mô tả một cấu trúc công ty đơn giản: có một công ty có tên và văn phòng, và trong văn phòng có nhân viên. Các phần tử Nhân viên và Văn phòng là các phần tử bao bọc - chúng dùng để thu thập các phần tử cùng loại, về cơ bản kết hợp chúng thành một bộ để dễ xử lý. Tầng và phòng xứng đáng được chú ý đặc biệt. Đây là các thuộc tính của văn phòng (tầng và số), hay nói cách khác là thuộc tính của nó. Nếu chúng ta có phần tử "hình ảnh" thì chúng ta có thể chuyển kích thước của nó. Bạn có thể nhận thấy rằng công ty không có thuộc tính tên nhưng có thành phần tên. Bạn có thể mô tả đơn giản các cấu trúc theo cách bạn muốn. Không ai bắt buộc bạn phải viết tất cả thuộc tính của các phần tử chỉ trong thuộc tính; bạn chỉ có thể sử dụng các phần tử và viết một số dữ liệu bên trong chúng. Ví dụ: chúng tôi có thể ghi lại tên và vị trí của nhân viên dưới dạng thuộc tính:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> Thiên đường CNTT< / name> < offices> < office floor= "1" room= "1" > < employees> < employee name= "Maksim" job= "Middle Software Developer" > < / employee> < employee name= "Ivan" job= "Junior Software Developer" > < / employee> < employee name= "Franklin" job= "Junior Software Developer" > < / employee> < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" > < / employee> < employee name= "Adam" job= "Middle Software Developer" > < / employee> < employee name= "Leroy" job= "Junior Software Developer" > < / employee> < / employees> < / office> < / offices> < / company>Như bạn có thể thấy, bây giờ tên và chức vụ của mỗi nhân viên đều là thuộc tính của anh ta. Và bạn có thể nhận thấy rằng không có gì bên trong thực thể nhân viên (thẻ), tất cả các phần tử nhân viên đều trống. Sau đó, bạn có thể đặt nhân viên thành một phần tử trống - đóng nó ngay sau khi khai báo các thuộc tính. Việc này được thực hiện khá đơn giản, chỉ cần thêm dấu gạch chéo:< ? xml version= "1.0" encoding= "UTF-8" ? > < company> < name> Thiên đường CNTT< / name> < offices> < office floor= "1" room= "1" > < employees> < employee name= "Maksim" job= "Middle Software Developer" / > < employee name= "Ivan" job= "Junior Software Developer" / > < employee name= "Franklin" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company>Như bạn có thể thấy, bằng cách đóng các phần tử trống, chúng tôi đã bảo toàn toàn bộ tính toàn vẹn của thông tin và rút ngắn đáng kể bản ghi, giúp thông tin ngắn gọn và dễ đọc hơn. Thêm một lời bình luận(văn bản sẽ bị bỏ qua khi phân tích cú pháp tệp) trong XML có cú pháp sau:< ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- >Và thiết kế cuối cùng là CDATA , có nghĩa là "dữ liệu ký tự". Nhờ thiết kế này, có thể viết văn bản sẽ không được hiểu là đánh dấu XML. Điều này hữu ích nếu bạn có một thực thể bên trong tệp XML lưu trữ đánh dấu XML trong thông tin. Ví dụ:< ? xml version= "1.0" encoding= "UTF-8" ? > < bean> < information> < ! [ CDATA[ < name> Ivan< / name> < age> 26 < / age> ] ] > < / information> < / bean>Vấn đề ở XML là bạn có thể mở rộng nó theo cách bạn muốn: sử dụng các phần tử, thuộc tính của riêng bạn và cấu trúc nó theo ý muốn. Bạn có thể sử dụng cả thuộc tính và phần tử để lưu trữ dữ liệu (như được hiển thị trong ví dụ trước đó). Tuy nhiên, bạn cần hiểu rằng bạn có thể nhanh chóng đưa ra các phần tử và thuộc tính của riêng mình theo cách bạn muốn, nhưng điều gì sẽ xảy ra nếu bạn làm việc trong một dự án mà một lập trình viên khác muốn chuyển phần tử tên thành các thuộc tính và toàn bộ logic chương trình của bạn? được viết sao cho tên đó là một phần tử? Làm cách nào bạn có thể tạo các quy tắc của riêng mình về những thành phần nào nên có, thuộc tính nào của chúng và những thứ khác để bạn có thể xác thực các tệp XML và đảm bảo rằng các quy tắc đó sẽ trở thành tiêu chuẩn trong dự án của bạn và không ai vi phạm chúng? Để viết tất cả các quy tắc đánh dấu XML của riêng bạn, có những công cụ đặc biệt. Nổi tiếng nhất: Lược đồ DTD và XML. Bài viết này sẽ chỉ nói về cái đầu tiên.

DTD

DTD được tạo ra để mô tả các loại tài liệu. DTD đã trở nên lỗi thời và hiện đang bị loại bỏ tích cực trong XML, nhưng vẫn còn nhiều tệp XML sử dụng DTD và nói chung, việc hiểu nó rất hữu ích. DTD là công nghệ xác thực tài liệu XML. DTD khai báo các quy tắc cụ thể cho một loại tài liệu: các phần tử của nó, những phần tử nào có thể có bên trong phần tử đó, các thuộc tính, liệu chúng có được yêu cầu hay không, số lần lặp lại của chúng, cũng như các Thực thể. Tương tự như XML, DTD có thể được hiển thị bằng một ví dụ để giải thích rõ ràng hơn.< ! -- Объявление возможных элементов -- > < ! ELEMENT employee EMPTY> < ! ELEMENT employees (employee+ ) > < ! ELEMENT office (employees) > < ! ELEMENT offices (office+ ) > < ! ELEMENT name (#PCDATA) > < ! ELEMENT company (name, offices) > < ! -- Добавление атрибутов для элементов employee и office -- > < ! ATTLIST employee name CDATA #REQUIRED job CDATA #REQUIRED > < ! ATTLIST office floor CDATA #REQUIRED room CDATA #REQUIRED > < ! -- Добавление сущностей -- > < ! ENTITY M "Maksim" > < ! ENTITY I "Ivan" > < ! ENTITY F "Franklin" >Ở đây chúng tôi có một ví dụ đơn giản như vậy. Trong ví dụ này, chúng tôi đã khai báo toàn bộ hệ thống phân cấp của mình từ ví dụ XML: nhân viên, nhân viên, văn phòng, văn phòng, tên, công ty. Để tạo tệp DTD, có 3 cấu trúc chính được sử dụng để mô tả bất kỳ tệp XML nào: ELEMENT (để mô tả các phần tử), ATTLIST (để mô tả thuộc tính cho các phần tử) và ENTITY (để thay thế văn bản bằng dạng viết tắt). YẾU TỐ Dùng để mô tả phần tử. Các phần tử có thể được sử dụng trong phần tử được mô tả sẽ được liệt kê trong dấu ngoặc đơn ở dạng danh sách. Bạn có thể sử dụng bộ định lượng để biểu thị số lượng (chúng tương tự như bộ định lượng trong các biểu thức thông thường): + nghĩa là 1+ * nghĩa là 0+ ? có nghĩa là 0 HOẶC 1 Nếu không có bộ định lượng nào được thêm vào thì được coi là chỉ có 1 phần tử. Nếu chúng ta cần một trong các nhóm phần tử, chúng ta có thể viết nó như thế này:< ! ELEMENT company ((name | offices) ) >Sau đó, một trong các yếu tố sẽ được chọn: tên hoặc văn phòng, nhưng nếu có hai yếu tố đó trong công ty thì quá trình xác thực sẽ không vượt qua. Bạn cũng có thể nhận thấy rằng trong nhân viên có từ EMPTY - điều này có nghĩa là phần tử phải trống. Ngoài ra còn có BẤT CỨ - bất kỳ yếu tố nào. #PCDATA – dữ liệu văn bản. DANH SÁCH Dùng để thêm thuộc tính cho phần tử. Sau ATTLIST theo sau tên của phần tử mong muốn và sau đó là từ điển có dạng “tên thuộc tính - loại thuộc tính”, và ở cuối, bạn có thể thêm #IMPLIED (tùy chọn) hoặc #REQUIRED (bắt buộc). CDATA – dữ liệu văn bản. Có nhiều loại khác, nhưng chúng đều là chữ thường. THỰC THỂ ENTITY được sử dụng để khai báo các chữ viết tắt và văn bản sẽ được đặt trên chúng. Trên thực tế, chúng ta có thể chỉ cần sử dụng trong XML, thay vì sử dụng toàn văn, chỉ tên của thực thể có dấu & trước và; sau đó. Ví dụ: để phân biệt giữa đánh dấu HTML và chỉ các ký tự, dấu ngoặc nhọn bên trái thường được thoát bằng lt; , bạn chỉ cần đặt & trước lt. Khi đó chúng ta sẽ không sử dụng đánh dấu mà chỉ đơn giản là một biểu tượng< . Как вы можете видеть, все довольно просто: объявляете элементы, объясняете, какие элементы объявленные элементы способны содержать, добавление атрибутов этим элементам и, по желанию, можете добавить сущности, чтобы сокращать какие-то записи. И тут вы должны были бы спросить: а как использовать наши правила в нашем XML файле? Ведь мы просто объявили правила, но мы не использовали их в XML. Có hai cách để sử dụng chúng trong XML: 1. Triển khai - viết các quy tắc DTD bên trong chính tệp XML, chỉ cần viết phần tử gốc sau từ khóa DOCTYPE và đặt tệp DTD của chúng ta vào trong dấu ngoặc vuông. < ? xml version= "1.0" encoding= "UTF-8" ? > < ! DOCTYPE company [ < ! -- Объявление возможных элементов -- > < ! ELEMENT employee EMPTY> < ! ELEMENT employees (employee+ ) > < ! ELEMENT office (employees) > < ! ELEMENT offices (office+ ) > < ! ELEMENT name (#PCDATA) > < ! ELEMENT company (name, offices) > < ! -- Добавление атрибутов для элементов employee и office -- > < ! ATTLIST employee name CDATA #REQUIRED job CDATA #REQUIRED > < ! ATTLIST office floor CDATA #REQUIRED room CDATA #REQUIRED > < ! -- Добавление сущностей -- > < ! ENTITY M "Maksim" > < ! ENTITY I "Ivan" > < ! ENTITY F "Franklin" > ] > < company> < name> Thiên đường CNTT< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < offices> < office floor= "1" room= "1" > < employees> < employee name= "&M;" job= "Middle Software Developer" / > < employee name= "&I;" job= "Junior Software Developer" / > < employee name= "&F;" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company> 2. Nhập - chúng tôi viết tất cả các quy tắc của mình trong một tệp DTD riêng biệt, sau đó trong tệp XML, chúng tôi sử dụng cấu trúc DOCTYPE từ phương thức đầu tiên, chỉ thay vì dấu ngoặc vuông, bạn cần viết HỆ THỐNG và chỉ định đường dẫn tuyệt đối hoặc tương đối đến vị trí hiện tại của tập tin. < ? xml version= "1.0" encoding= "UTF-8" ? > < ! DOCTYPE company SYSTEM "dtd_example1.dtd" > < company> < name> Thiên đường CNTT< / name> < ! -- Иван недавно уволился, только неделю отработать должен. Не забудьте потом удалить его из списка. -- > < offices> < office floor= "1" room= "1" > < employees> < employee name= "&M;" job= "Middle Software Developer" / > < employee name= "&I;" job= "Junior Software Developer" / > < employee name= "&F;" job= "Junior Software Developer" / > < / employees> < / office> < office floor= "1" room= "2" > < employees> < employee name= "Herald" job= "Middle Software Developer" / > < employee name= "Adam" job= "Middle Software Developer" / > < employee name= "Leroy" job= "Junior Software Developer" / > < / employees> < / office> < / offices> < / company>Bạn cũng có thể sử dụng từ khóa PUBLIC thay vì SYSTEM, nhưng nó có thể không hữu ích với bạn. Nếu quan tâm, bạn có thể đọc chi tiết về nó (và cả về HỆ THỐNG nữa) tại đây: link. Bây giờ chúng tôi không thể sử dụng các phần tử khác mà không khai báo chúng trong DTD và tất cả XML đều phải tuân theo các quy tắc của chúng tôi. Bạn có thể thử viết mã này trong IntelliJ IDEA trong một tệp riêng có phần mở rộng .xml và thử thêm một số thành phần mới hoặc xóa một thành phần khỏi DTD của chúng tôi và để ý xem IDE sẽ chỉ ra lỗi cho bạn như thế nào. Tuy nhiên, DTD có nhược điểm:
  • Nó có cú pháp riêng, khác với cú pháp xml.
  • DTD không kiểm tra kiểu dữ liệu và chỉ có thể chứa các chuỗi.
  • Không có không gian tên trong DTD.
Về vấn đề cú pháp của riêng bạn: bạn phải hiểu cùng lúc hai cú pháp: cú pháp XML và DTD. Chúng khác nhau và điều này có thể khiến bạn bối rối. Ngoài ra, vì điều này, việc theo dõi lỗi trong các tệp XML lớn kết hợp với cùng các lược đồ DTD sẽ khó khăn hơn. Nếu có điều gì đó không hiệu quả với bạn, bạn phải kiểm tra một lượng lớn văn bản với các cú pháp khác nhau. Nó giống như đọc hai cuốn sách cùng một lúc: bằng tiếng Nga và tiếng Anh. Và nếu kiến ​​​​thức về một ngôn ngữ của bạn kém hơn thì việc hiểu văn bản cũng sẽ khó khăn không kém. Về vấn đề kiểm tra kiểu dữ liệu: các thuộc tính trong DTD có nhiều kiểu khác nhau, nhưng về cốt lõi, chúng đều là biểu diễn chuỗi của một cái gì đó, danh sách hoặc liên kết. Tuy nhiên, bạn không thể chỉ yêu cầu những con số, đặc biệt là những con số dương hoặc âm. Và bạn hoàn toàn có thể quên đi các loại đối tượng. Vấn đề cuối cùng sẽ được thảo luận trong bài viết tiếp theo, bài viết này sẽ được dành riêng cho các không gian tên và lược đồ XML, vì thảo luận về nó ở đây là vô nghĩa. Cảm ơn mọi người đã quan tâm, mình đã làm rất nhiều việc và sẽ tiếp tục làm để hoàn thành toàn bộ loạt bài đúng thời hạn. Về cơ bản, tôi chỉ cần tìm ra các lược đồ XML và đưa ra lời giải thích về chúng bằng những từ ngữ rõ ràng hơn là có thể hoàn thành bài viết thứ 2. Một nửa công việc đã được thực hiện xong nên bạn có thể mong đợi nó sớm thôi. Bài viết cuối cùng sẽ hoàn toàn dành cho việc làm việc với các tệp XML bằng Java. Chúc mọi người may mắn và thành công trong lập trình :) Bài tiếp theo:

Ngày nay, tất cả các chuyên gia trong lĩnh vực công nghệ web đều thấy rõ rằng các tiêu chuẩn hiện có về truyền dữ liệu qua Internet là không đủ. Định dạng HTML, vốn từng trở thành bước đột phá trong lĩnh vực hiển thị nội dung của các trang Internet, giờ đây không còn đáp ứng được mọi yêu cầu cần thiết hiện nay. Nó cho phép bạn mô tả cách hiển thị dữ liệu trên màn hình của người dùng cuối, nhưng không cung cấp bất kỳ phương tiện nào để mô tả và quản lý hiệu quả dữ liệu được truyền đi.

Ngoài ra, một trở ngại đối với nhiều công ty phát triển phần mềm là nhu cầu chia sẻ các thành phần khác nhau, đảm bảo sự tương tác và khả năng trao đổi dữ liệu giữa chúng.

Cho đến gần đây, không có tiêu chuẩn nào cung cấp các công cụ để truy xuất thông tin thông minh, trao đổi dữ liệu và xử lý thích ứng dữ liệu nhận được.

Giải pháp cho tất cả các vấn đề được mô tả ở trên là ngôn ngữ XML được tổ chức quốc tế W3C (EN) phê duyệt năm 1998. XML (Ngôn ngữ đánh dấu eXtensible) là ngôn ngữ đánh dấu có thể mở rộng được thiết kế để mô tả dữ liệu có cấu trúc ở dạng văn bản. Định dạng dựa trên văn bản này, giống như HTML, được thiết kế đặc biệt để lưu trữ và truyền dữ liệu.

XML cho phép bạn mô tả và truyền dữ liệu có cấu trúc như:

  • tài liệu riêng biệt;
  • siêu dữ liệu mô tả nội dung của bất kỳ trang Internet nào;
  • các đối tượng chứa dữ liệu và phương thức làm việc với dữ liệu đó (ví dụ: điều khiển ActiveX hoặc đối tượng Java);
  • hồ sơ riêng lẻ (ví dụ: kết quả thực hiện truy vấn tới cơ sở dữ liệu);
  • tất cả các loại liên kết web đến thông tin và nguồn nhân lực trên Internet (địa chỉ email, liên kết siêu văn bản, v.v.).

Tạo tài liệu XML

Dữ liệu được mô tả trong XML được gọi là tài liệu XML. XML dễ đọc và đủ đơn giản để hiểu. Nếu bạn đã quen thuộc với HTML thì việc học cách soạn thảo tài liệu XML sẽ không gây khó khăn cho bạn.

Văn bản nguồn của tài liệu XML bao gồm một tập hợp các phần tử XML, mỗi phần tử chứa thẻ bắt đầu và thẻ kết thúc. Mỗi cặp thẻ đại diện cho một phần dữ liệu. Nghĩa là, giống như HTML, XML sử dụng các thẻ để mô tả dữ liệu. Nhưng không giống như HTML, XML cho phép một tập hợp các cặp thẻ không giới hạn, mỗi cặp thẻ không thể hiện dữ liệu chứa trong đó trông như thế nào mà thể hiện ý nghĩa của nó.

Chào buổi sáng TIN TỨC Phim truyền hình Chất độc nhẹ nhàng Cánh đồng kỳ tích (lặp lại) M. f. Sức khỏe TIN TỨC Tận hưởng bồn tắm của bạn! M. f. Cùng nhau TIN TỨC Giờ tốt nhất TIN TỨC Thời tiết Chúc các em buổi tối vui vẻ THỜI GIAN Thị giác

Văn bản này có thể được tạo ở định dạng văn bản thuần túy và được lưu trong tệp có phần mở rộng XML.

Bất kỳ phần tử nào của tài liệu XML đều có thể có các thuộc tính xác định các đặc điểm của nó. Thuộc tính là cặp name="value" được chỉ định khi xác định một phần tử trong thẻ bắt đầu. Trong ví dụ trên, phần tử có một thuộc tính date="December 25" và phần tử - thuộc tính name="ORT".

Nguyên tắc mở rộng của ngôn ngữ XML là khả năng sử dụng số lượng cặp thẻ không giới hạn, được xác định bởi người tạo tài liệu XML. Ví dụ: mô tả ở trên về lịch trình chương trình truyền hình có thể được mở rộng để bao gồm thông tin về khu vực phát sóng và lịch trình chương trình của kênh RTR. Trong trường hợp này, mô tả XML sẽ có dạng:

Nga Saint Petersburg Chào buổi sáng TIN TỨC Phim truyền hình Chất độc nhẹ nhàng Cánh đồng kỳ tích (lặp lại) M. f. Sức khỏe TIN TỨC Tận hưởng bồn tắm của bạn! M. f. Cùng nhau TIN TỨC Giờ tốt nhất TIN TỨC Thời tiết Chúc các em buổi tối vui vẻ THỜI GIAN Thị giác M. f. Thời tiết Thư RTR Chào buổi sáng đất nước! Giám đốc của riêng tôi Sương mù tím CHÌA KHÓA VÀNG Liên đoàn Điệp viên bí mật Boyarsky Dvor Gia đình tôi Ngôi nhà hạnh phúc TIN TỨC ASTEROID (Mỹ) ĂN TỐI TẠI FRED'S (Mỹ) Thời tiết

Bây giờ, từ mô tả XML này, bạn có thể trích xuất chương trình truyền hình của các kênh ORT và RTR vào ngày 25 tháng 12 tại thành phố St. Petersburg, Nga.

Nguyên tắc độc lập của việc xác định cấu trúc bên trong của tài liệu với các phương pháp trình bày thông tin này là tách dữ liệu khỏi quá trình xử lý và hiển thị chúng. Do đó, dữ liệu thu được có thể được sử dụng theo nhu cầu của khách hàng, nghĩa là chọn thiết kế mong muốn, áp dụng các phương pháp xử lý cần thiết.

Bạn có thể kiểm soát việc hiển thị các thành phần trong cửa sổ chương trình máy khách (ví dụ: trong cửa sổ trình duyệt) bằng cách sử dụng các hướng dẫn đặc biệt - biểu định kiểu XSL (Ngôn ngữ biểu định kiểu eXstensible). Các bảng XSL này cho phép bạn xác định hình thức của một phần tử tùy thuộc vào vị trí của nó trong tài liệu, nghĩa là hai phần tử có cùng tên có thể áp dụng các quy tắc định dạng khác nhau. Ngoài ra, ngôn ngữ cơ bản của XSL là XML, có nghĩa là các bảng XSL linh hoạt hơn và các DTD hoặc lược đồ dữ liệu, được thảo luận dưới đây, có thể được sử dụng để kiểm soát tính chính xác của các biểu định kiểu đó.

Định dạng XML, so với HTML, có một tập hợp nhỏ các quy tắc phân tích cú pháp đơn giản cho phép bạn phân tích các tài liệu XML mà không cần dùng đến bất kỳ mô tả bên ngoài nào về các phần tử XML được sử dụng. Nói chung, tài liệu XML phải đáp ứng các yêu cầu sau:

  • Mỗi thẻ mở xác định một phần dữ liệu trong tài liệu phải được kèm theo thẻ đóng, nghĩa là, không giống như HTML, không thể bỏ qua thẻ đóng.
  • Việc lồng các thẻ trong XML được kiểm soát chặt chẽ nên cần theo dõi thứ tự đóng và mở thẻ.
  • XML phân biệt chữ hoa chữ thường.
  • Tất cả thông tin giữa thẻ bắt đầu và thẻ kết thúc được xử lý dưới dạng dữ liệu trong XML và do đó tất cả các ký tự định dạng đều được tính đến (nghĩa là dấu cách, dòng mới, tab không bị bỏ qua, như trong HTML).
  • XML có một tập hợp các ký tự dành riêng chỉ phải được chỉ định theo một cách cụ thể trong tài liệu XML. Các ký hiệu và bộ ký tự xác định chúng là:
    < <
    & &
    > >
    " "
    " "
  • Mỗi tài liệu XML phải có một phần tử gốc duy nhất. Trong ví dụ của chúng tôi, phần tử như vậy là phần tử .
  • Tất cả các giá trị thuộc tính được sử dụng trong định nghĩa thẻ phải được đặt trong dấu ngoặc kép.

Nếu một tài liệu XML không vi phạm các quy tắc trên thì nó được gọi là chính thức đúng.

Ngày nay, có hai cách để kiểm soát tính chính xác của tài liệu XML: DTD (Định nghĩa loại tài liệu) và lược đồ dữ liệu (Lược đồ ngữ nghĩa). Nếu một tài liệu XML được tạo và gửi bằng DTD hoặc Lược đồ thì nó được gọi là có hiệu lực.

Cơ chế là một cách tạo quy tắc để xây dựng tài liệu XML, nghĩa là chỉ định tên, loại, thuộc tính và mối quan hệ hợp lệ của các phần tử trong tài liệu XML. Lược đồ là một cách khác để tạo các quy tắc xây dựng tài liệu XML. So với các mô tả DTD, lược đồ có các công cụ mạnh hơn để xác định cấu trúc dữ liệu phức tạp, cung cấp một cách rõ ràng hơn để mô tả ngữ pháp của ngôn ngữ và có thể dễ dàng hiện đại hóa và mở rộng. Một ưu điểm không thể nghi ngờ của lược đồ là chúng cho phép bạn mô tả các quy tắc cho một tài liệu XML bằng chính XML. Từ quan điểm này, XML có thể được gọi là tự mô tả.

Vì các phần tử XML được sử dụng trong cùng một tài liệu có thể đến từ các lược đồ XML khác nhau nên có thể xảy ra xung đột khi đặt tên phần tử. Không gian tên giải quyết vấn đề này. Không gian tên cho phép bạn phân biệt giữa các thành phần có cùng tên nhưng có ý nghĩa khác nhau. Tuy nhiên, họ không xác định cách xử lý các phần tử đó - việc đó được thực hiện bởi các trình phân tích cú pháp XML được thảo luận bên dưới.

Để hiểu rõ hơn mục đích và khả năng sử dụng lược đồ XML, chúng tôi trình bày sơ đồ cho ví dụ về chương trình TV đã thảo luận ở trên.

Lược đồ XML này phải được lưu trong tệp TV-ProgramSchema.XML. Phần tử gốc của tệp XML này là phần tử , có các thuộc tính là tên của lược đồ TV-ProgramSchema và tham chiếu đến các không gian tên xác định các kiểu dữ liệu tích hợp được sử dụng trong lược đồ này: xmlns="urn:schemas-microsoft-com:xml-data" . Các thuộc tính minOccurs và maxOccurs của các phần tử của lược đồ này lần lượt đặt số lượng tối thiểu và tối đa có thể có của các phần tử đó trong lược đồ. Ví dụ, dòng có nghĩa là số phần tử của loại vật phẩm (tức là TV tự hiển thị) trong mạch có thể từ 0 đến vô cùng.

Nếu bạn sử dụng lược đồ trên để kiểm soát tính chính xác của mô tả XML của một chương trình TV thì bạn phải chỉ ra lược đồ được sử dụng trong tiêu đề của tài liệu XML. Sau đó, mô tả XML của chương trình truyền hình kênh ORT sẽ như thế này:

Nga Saint Petersburg Chào buổi sáng TIN TỨC Phim truyền hình Chất độc nhẹ nhàng Cánh đồng kỳ tích (lặp lại) M. f. Sức khỏe TIN TỨC Tận hưởng bồn tắm của bạn! M. f. Cùng nhau TIN TỨC Giờ tốt nhất TIN TỨC Thời tiết Chúc các em buổi tối vui vẻ THỜI GIAN Thị giác

Bây giờ phần tử gốc Mô tả XML này có thuộc tính xmlns="x-schema:TV-ProgramSchema.xml", đây là một liên kết tới lược đồ XML được sử dụng.

Phân tích tài liệu XML

Việc lấy dữ liệu từ một tài liệu XML cũng như kiểm tra tính chính xác của tài liệu XML được cung cấp máy phân tích(trình phân tích cú pháp) tài liệu XML. Nếu một tài liệu XML chính xác về mặt hình thức thì tất cả các máy phân tích được thiết kế để phân tích các tài liệu XML sẽ có thể hoạt động chính xác với tài liệu đó.

Vì việc sử dụng DTD trong XML là không bắt buộc nên bất kỳ tài liệu nào chính xác về mặt hình thức đều có thể được nhận dạng và phân tích cú pháp bằng một chương trình được thiết kế để phân tích các tài liệu XML. Ví dụ: bất kỳ mô tả XML nào được đưa ra trong tài liệu này đều chính xác về mặt hình thức, do đó bất kỳ trình phân tích cú pháp XML nào cũng sẽ nhận ra nó một cách chính xác.

Nếu đầu vào của trình phân tích cú pháp XML là một tài liệu XML sử dụng lược đồ XML thì nó sẽ được phân tích cú pháp, kiểm tra tính chính xác và tuân thủ lược đồ. Ví dụ: mô tả XML của chương trình TV trên kênh RTR sử dụng lược đồ TV-ProgramSchema.xml sẽ được coi là chính xác và hợp lệ về mặt hình thức.

Trình phân tích XML cho phép, nếu các cấu trúc ngôn ngữ được chỉ định trong tài liệu đúng về mặt cú pháp, trích xuất chính xác các thành phần tài liệu mà chúng xác định và chuyển chúng sang chương trình ứng dụng thực hiện các hành động hiển thị cần thiết. Nghĩa là, sau khi phân tích cú pháp một tài liệu XML trong hầu hết các trường hợp, chương trình ứng dụng được cung cấp một mô hình đối tượng hiển thị nội dung của tài liệu XML thu được và các công cụ cần thiết để làm việc với nó (duyệt cây phần tử).

Vì XML, không giống như HTML, không xác định cách hiển thị và sử dụng các thành phần tài liệu được mô tả với sự trợ giúp của nó, nên trình phân tích cú pháp XML có cơ hội chọn thiết kế mong muốn.

Như đã đề cập, bạn có thể sử dụng bảng XSL để xác định hình thức của các phần tử XML. Nguyên tắc xử lý tài liệu XML bằng biểu định kiểu như sau: khi phân tích tài liệu XSL, chương trình phân tích xử lý các hướng dẫn của ngôn ngữ này và gán cho mỗi phần tử được tìm thấy trong cây XML một bộ thẻ xác định định dạng của phần tử này. Nói cách khác, bằng cách sử dụng bảng XSL, một mẫu định dạng cho các phần tử XML được chỉ định và bản thân mẫu này có thể có cấu trúc của đoạn tương ứng của tài liệu XML. Các lệnh XSL xác định vị trí chính xác của một phần tử XML trong cây, do đó có thể áp dụng các kiểu dáng khác nhau cho cùng các phần tử, tùy thuộc vào ngữ cảnh mà chúng được sử dụng.

Một số trình phân tích cú pháp căn cứ vào cách chúng thể hiện cấu trúc tài liệu trên đặc tả Mô hình đối tượng tài liệu (DOM), cho phép sử dụng DOM phân cấp nghiêm ngặt khi tạo tài liệu XML.

Một ví dụ về trình phân tích cú pháp XML là trình phân tích cú pháp XML MSXML được tích hợp trong Microsoft Internet Explorer phiên bản 5.0. Nó cho phép bạn đọc dữ liệu từ một tệp XML, xử lý nó, tạo một cây phần tử, hiển thị dữ liệu bằng cách sử dụng biểu định kiểu XSL, đồng thời, sử dụng DOM, biểu diễn tất cả các phần tử dữ liệu dưới dạng đối tượng.

Sử dụng XML

Nhiều chuyên gia xem XML như một công nghệ mới để tích hợp các thành phần phần mềm. Những lợi ích chính của việc sử dụng XML là:

  • Tích hợp dữ liệu từ nhiều nguồn khác nhau. XML có thể được sử dụng để kết hợp dữ liệu có cấu trúc không đồng nhất ở cấp độ trung bình của hệ thống web, cơ sở dữ liệu ba tầng.
  • Xử lý dữ liệu cục bộ. Dữ liệu nhận được ở định dạng XML có thể được phân tích, xử lý và hiển thị trực tiếp trên máy khách mà không cần gọi thêm tới máy chủ.
  • Xem và thao tác dữ liệu từ nhiều góc độ khác nhau. Dữ liệu nhận được có thể được khách hàng xử lý và xem theo nhiều cách khác nhau tùy thuộc vào nhu cầu của người dùng cuối.
  • Khả năng cập nhật dữ liệu một phần. Với XML, bạn chỉ có thể cập nhật phần dữ liệu có cấu trúc đã thay đổi chứ không phải toàn bộ cấu trúc.

Tất cả những ưu điểm này làm cho XML trở thành một công cụ không thể thiếu để phát triển các công cụ truy xuất cơ sở dữ liệu linh hoạt, các ứng dụng web ba tầng mạnh mẽ và các ứng dụng hỗ trợ giao dịch. Nói cách khác, bằng cách sử dụng XML, bạn có thể tạo các truy vấn đối với cơ sở dữ liệu có nhiều cấu trúc khác nhau, điều này cho phép bạn tìm kiếm thông tin trong nhiều cơ sở dữ liệu không tương thích với nhau. Việc sử dụng XML ở tầng giữa của các ứng dụng web ba tầng cho phép trao đổi dữ liệu hiệu quả giữa máy khách và máy chủ của hệ thống thương mại điện tử.

Ngoài ra, XML có thể được sử dụng như một phương tiện để mô tả ngữ pháp của các ngôn ngữ khác và kiểm soát tính chính xác của tài liệu.

Các công cụ xử lý dữ liệu nhận được ở định dạng XML có thể được phát triển bằng Visual Basic, Java hoặc C++.

Đê Lucinda, Ed Tittel

XML là ngôn ngữ đánh dấu tạo ra các trang web. Trước khi bạn bắt đầu sử dụng XML, hãy tìm hiểu sự khác biệt giữa tài liệu hợp lệ và tài liệu đúng định dạng, cách tạo các phần tử DTD (Định nghĩa loại tài liệu) và các khai báo lược đồ cơ bản để tạo tài liệu XML. Bạn cũng sẽ muốn hiểu các ký tự dành riêng được sử dụng thường xuyên cũng như trình duyệt web nào hỗ trợ tốt nhất các biểu định kiểu và XML.

Tài liệu XML hợp lệ và được định dạng tốt

Trong XML, một tài liệu hợp lệ phải tuân theo các quy tắc trong DTD (định nghĩa loại tài liệu) hoặc lược đồ của nó, xác định những phần tử nào có thể xuất hiện trong tài liệu và cách các phần tử có thể khớp với nhau. Nếu một tài liệu có định dạng kém thì nó sẽ không tiến xa được trong thế giới XML, vì vậy bạn cần tuân theo một số quy tắc rất đơn giản khi tạo một tài liệu XML. MỘT tài liệu được hình thành tốt phải có các thành phần sau:

    Tất cả các thẻ bắt đầu và kết thúc đều giống nhau. Nói cách khác, phần mở và phần đóng phải luôn chứa cùng một tên trong cùng một trường hợp: ... hoặc ..., nhưng không phải ....

    Các phần tử trống tuân theo cú pháp XML đặc biệt, ví dụ .

    Tất cả các giá trị thuộc tính đều xuất hiện trong dấu ngoặc đơn hoặc dấu ngoặc kép: id="giá trị"> hoặc .

Quy tắc tạo Định nghĩa Loại Tài liệu hoặc DTD, Thành phần

Về cơ bản, bạn chuẩn bị và sử dụng Định nghĩa loại tài liệu (DTD) để thêm cấu trúc và logic, giúp dễ dàng đảm bảo rằng tất cả chức năng cần thiết đều có mặt - theo đúng thứ tự - trong tài liệu XML của bạn. Bạn có thể phát triển nhiều quy tắc trong DTD để kiểm soát cách sử dụng các phần tử trong tài liệu XML.

Biểu tượngNghĩaVí dụ
#PCDATAChứa dữ liệu ký tự hoặc văn bản được phân tích cú pháp
#PCDATA, tên thành phầnChứa văn bản và phần tử khác; #PCDATA luôn xuất hiện đầu tiên trong quy tắccon) *>
, (dấu phẩy)Phải được sử dụng theo thứ tự nàycon3)>
| (bảng điều khiển ống)Chỉ sử dụng một phần tử trong số các tùy chọn được cung cấpcon3)>
tên phần tử (tự nó)Chỉ sử dụng một tên
tên phần tử? con3?)>
tên phần tử +Sử dụng một hoặc nhiều lầncon3)>
tên phần tử *Sử dụng một lần, nhiều lần hoặc không sử dụng lần nàocon3)>
() Cho biết các nhóm; có thể được lồng vào nhauhoặc
con4)>

Khai báo lược đồ XML cơ bản

Một tài liệu Lược đồ XML được xây dựng từ một loạt các khai báo cung cấp thông tin rất chi tiết và đảm bảo rằng thông tin chứa trong tài liệu XML ở dạng chính xác.

Thông báoMục đíchCú pháp
Cơ chếChỉ định ngôn ngữ mà lược đồ sử dụngxmlns:xsd="//www.w3.org/2001/XMLSchema">
Yếu tốĐịnh nghĩa một phần tử
Thuộc tínhXác định một thuộc tínhgõ="loại">
Loại phức tạpXác định một phần tử chứa các phần tử khác, chứa các thuộc tính
hoặc chứa nội dung hỗn hợp (yếu tố và văn bản)
Loại đơn giảnTạo kiểu dữ liệu bị hạn chế cho một phần tử hoặc thuộc tính
nghĩa
Trình liên kết nối tiếpChỉ ra rằng các thuộc tính hoặc thành phần trong một kiểu phức tạp
phải được liệt kê theo thứ tự
Lựa chọn nhà soạn nhạcChỉ ra rằng bất kỳ thuộc tính hoặc thành phần nào trong một kiểu phức tạp đều có thể được sử dụng
Tất cả nhà soạn nhạcChỉ ra rằng bất kỳ hoặc tất cả các thuộc tính hoặc thành phần trong một kiểu phức tạp có thể được sử dụng
chú thíchChứa tài liệu và/hoặc phần tử appInfo cung cấp
thông tin bổ sung và nhận xét về tài liệu lược đồ
Tài liệuCung cấp thông tin có thể đọc được trong chú thích
Thông tin ứng dụngCung cấp thông tin có thể đọc được bằng máy trong
trừu tượng

Các ký tự dành riêng phổ biến trong XML

Một số đối tượng được dành riêng để sử dụng nội bộ trong XML và phải được thay thế bằng các liên kết tượng trưng trong nội dung của bạn. Năm đối tượng nội bộ thường được sử dụng này đã được xác định là một phần của XML và sẵn sàng sử dụng:

CSS1?

XSLT 1.0?ĐúngĐúngKHÔNGKHÔNG
Internet Explorer 6.0 Đúng Đúng Đúng Đúng
Mozilla 1.7.5 Đúng Đúng Đúng Đúng
Mozilla Firefox 1.0 Đúng Đúng Đúng Đúng
Netscape Navigator 7 Đúng Đúng Đúng Đúng
Opera 7 Đúng Đúng Đúng KHÔNG