1. Trang chủ
  2. » Công Nghệ Thông Tin

o'reilly - xml schema

473 3,9K 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 473
Dung lượng 4,26 MB

Nội dung

Table of Contents Index Full Description Reviews Reader reviews Errata XML Schema Eric van der Vlist Publisher: O'Reilly First Edition June 2002 ISBN: 0-596-00252-1, 400 pages The W3C's XML Schema offers a powerful set of tools for defining acceptable XML document structures and content. While schemas are powerful, that power comes with substantial complexity. This book explains XML Schema foundations, a variety of different styles for writing schemas, simple and complex types, datatypes and facets, keys, extensibility, documentation, design choices, best practices, and limitations. Complete with references, a glossary, and examples throughout. Table of Content Table of Content 2 Preface 8 Who Should Read This Book? 8 Who Should Not Read This Book? 8 About the Examples 8 Organization of This Book 9 Conventions Used in This Book 11 How to Contact Us 11 Acknowledgments 12 Chapter 1. Schema Uses and Development 13 1.1 What Schemas Do for XML 13 1.2 W3C XML Schema 15 Chapter 2. Our First Schema 17 2.1 The Instance Document 17 2.2 Our First Schema 18 2.3 First Findings 24 Chapter 3. Giving Some Depth to Our First Schema 26 3.1 Working From the Structure of the Instance Document 26 3.2 New Lessons 28 Chapter 4. Using Predefined Simple Datatypes 32 4.1 Lexical and Value Spaces 32 4.2 Whitespace Processing 34 4.3 String Datatypes 34 4.4 Numeric Datatypes 42 4.5 Date and Time Datatypes 45 4.6 List Types 53 4.7 What About anySimpleType? 53 4.8 Back to Our Library 53 Chapter 5. Creating Simple Datatypes 56 5.1 Derivation By Restriction 56 5.2 Derivation By List 73 5.3 Derivation By Union 75 5.4 Some Oddities of Simple Types 76 5.5 Back to Our Library 79 Chapter 6. Using Regular Expressions to Specify Simple Datatypes 82 6.1 The Swiss Army Knife 82 6.2 The Simplest Possible Patterns 82 6.3 Quantifying 83 6.4 More Atoms 84 6.5 Common Patterns 92 6.6 Back to Our Library 96 Chapter 7. Creating Complex Datatypes 99 7.1 Simple Versus Complex Types 99 7.2 Examining the Landscape 99 7.3 Simple Content Models 100 7.4 Complex Content Models 103 7.5 Mixed Content Models 127 7.6 Empty Content Models 131 7.7 Back to Our Library 133 7.8 Derivation or Groups 138 Chapter 8. Creating Building Blocks 139 8.1 Schema Inclusion 139 8.2 Schema Inclusion with Redefinition 141 8.3 Other Alternatives 146 8.4 Simplifying the Library 148 Chapter 9. Defining Uniqueness, Keys, and Key References 153 9.1 xs:ID and xs:IDREF 153 9.2 XPath-Based Identity Checks 154 9.3 ID/IDREF Versus xs:key/xs:keyref 161 9.4 Using xs:key and xs:unique As Co-occurrence Constraints 163 Chapter 10. Controlling Namespaces 166 10.1 Namespaces Present Two Challenges to Schema Languages 166 10.2 Namespace Declarations 169 10.3 To Qualify Or Not to Qualify? 171 10.4 Disruptive Attributes 177 10.5 Namespaces and XPath Expressions 178 10.6 Referencing Other Namespaces 179 10.7 Schemas for XML, XML Base and XLink 182 10.8 Namespace Behavior of Imported Components 188 10.9 Importing Schemas with No Namespaces 190 10.10 Chameleon Design 192 10.11 Allowing Any Elements or Attributes from a Particular Namespace 194 Chapter 11. Referencing Schemas and Schema Datatypes in XML Documents 197 11.1 Associating Schemas with Instance Documents 197 11.2 Defining Element Types 201 11.3 Defining Nil (Null) Values 206 11.4 Beware the Intrusive Nature of These Features 208 Chapter 12. Creating More Building Blocks Using Object-Oriented Features 209 12.1 Substitution Groups 209 12.2 Controlling Derivations 217 Chapter 13. Creating Extensible Schemas 225 13.1 Extensible Schemas 225 13.2 The Need for Open Schemas 233 Chapter 14. Documenting Schemas 236 14.1 Style Matters 236 14.2 The W3C XML Schema Annotation Element 237 14.3 Foreign Attributes 242 14.4 XML 1.0 Comments 244 14.5 Which One and What For? 244 Chapter 15. Elements Reference Guide 246 xs:all(outside a group) 247 xs:all(within a group) 249 xs:annotation 250 xs:any 252 xs:anyAttribute 255 xs:appinfo 257 xs:attribute(global definition) 260 xs:attribute(reference or local definition) 262 xs:attributeGroup(global definition) 265 xs:attributeGroup(reference) 266 xs:choice(outside a group) 267 xs:choice(within a group) 269 xs:complexContent 270 xs:complexType(global definition) 272 xs:complexType(local definition) 274 xs:documentation 276 xs:element(global definition) 278 xs:element(within xs:all) 282 xs:element(reference or local definition) 285 xs:enumeration 289 xs:extension(simple content) 291 xs:extension(complex content) 293 xs:field 295 xs:fractionDigits 297 xs:group(definition) 299 xs:group(reference) 301 xs:import 303 xs:include 306 xs:key 308 xs:keyref 310 xs:length 314 xs:list 316 xs:maxExclusive 318 xs:maxInclusive 320 xs:maxLength 322 xs:minExclusive 324 xs:minInclusive 326 xs:minLength 328 xs:notation 330 xs:pattern 332 xs:redefine 334 xs:restriction(simple type) 336 xs:restriction(simple content) 338 xs:restriction(complex content) 340 xs:schema 342 xs:selector 344 xs:sequence(outside a group) 346 xs:sequence(within a group) 348 xs:simpleContent 349 xs:simpleType(global definition) 350 xs:simpleType(local definition) 352 xs:totalDigits 354 xs:union 356 xs:unique 358 xs:whiteSpace 360 Chapter 16. Datatype Reference Guide 362 xs:anyURI 363 xs:base64Binary 365 xs:boolean 367 xs:byte 368 xs:date 369 xs:dateTime 371 xs:decimal 373 xs:double 374 xs:duration 376 xs:ENTITIES 378 xs:ENTITY 380 xs:float 381 xs:gDay 383 xs:gMonth 385 xs:gMonthDay 387 xs:gYear 389 xs:gYearMonth 390 xs:hexBinary 392 xs:ID 394 xs:IDREF 396 xs:IDREFS 398 xs:int 400 xs:integer 402 xs:language 403 xs:long 404 xs:Name 405 xs:NCName 406 xs:negativeInteger 407 xs:NMTOKEN 408 xs:NMTOKENS 409 xs:nonNegativeInteger 411 xs:nonPositiveInteger 412 xs:normalizedString 413 xs:NOTATION 415 xs:positiveInteger 417 xs:QName 418 xs:short 420 xs:string 421 xs:time 423 xs:token 424 xs:unsignedByte 426 xs:unsignedInt 427 xs:unsignedLong 428 xs:unsignedShort 429 Appendix A. XML Schema Languages 430 A.1 What Is a XML Schema Language? 430 A.2 Classification of XML Schema Languages 430 A.3 A Short History of XML Schema Languages 430 A.4 Sample Application 430 A.5 XML DTDs 430 A.6 W3C XML Schema 430 A.7 RELAX NG 430 A.8 Schematron 430 A.9 Examplotron 430 A.10 Decisions 430 A.1 What Is a XML Schema Language? 431 A.2 Classification of XML Schema Languages 433 A.3 A Short History of XML Schema Languages 434 A.4 Sample Application 437 A.5 XML DTDs 439 A.6 W3C XML Schema 440 A.7 RELAX NG 441 A.8 Schematron 444 A.9 Examplotron 445 A.10 Decisions 446 Appendix B. Work in Progress 448 B.1 W3C Projects 448 B.2 ISO: DSDL 450 B.3 Other 450 Glossary 453 A 453 B 454 C 454 D 456 E 458 F 459 G 459 I 460 L 460 M 461 N 461 P 462 Q 463 R 463 S 464 T 466 U 467 V 468 W 468 X 470 Colophon 473 Preface As developers create new XML vocabularies, they often need to describe those vocabularies to share, define, and apply them. This book will guide you through W3C XML Schema, a set of Recommendations from the World Wide Web Consortium (W3C). These specifications define a language that you can use to express formal descriptions of XML documents using a generally object-oriented approach. Schemas can be used for documentation, validation, or processing automation. W3C XML Schema is a key component of Web Services specifications such as SOAP and WSDL, and is widely used to describe XML vocabularies precisely. With this power comes complexity. The Recommendations are long, complex, and generally difficult to read. The Primer helps, of course, but there are many details and style approaches to consider in building schemas. This book attempts to provide an objective, and sometimes critical, view of the tools W3C XML Schema provides, helping you to discover the possibilities of schemas while avoiding potential minefields. Who Should Read This Book? Read this book if you want to: • Create W3C XML Schema schemas using a text editor, XML editor, or a W3C XML Schema IDE or editor. • Understand and modify existing W3C XML Schema schemas. You should already have a basic understanding of XML document structures and how to work with them. Who Should Not Read This Book? If you are just using an XML application using a W3C XML Schema schema, you probably do not need to deal with the subtleties of the Recommendation. About the Examples All the examples in this book have been tested with the XSV and Xerces-J implementations of W3C XML Schema running Linux (the Debian "sid" distribution). I have chosen these tools for their high level of conformance to the Recommendation (the best ones according to the tests I have performed); the vast majority runs without error on these implementations—however, the Recommendation is sometimes fuzzy and difficult to understand, and there are some examples that give different results with different implementations. These conform to my own understanding of the Recommendation as discussed on the xmlschema-dev mailing list (the archives are available at http://lists.w3.org/Archives/Public/xmlschema-dev ). Organization of This Book Chapter 1 This chapter examines why we would want to bring a new XML Schema language onto the XML scene and what basic benefits W3C XML Schema offers. Chapter 2 This chapter presents a first complete schema, introducing the basic features of the language in a very "flat" style. Chapter 3 With W3C XML Schema, style matters. This chapter gives a second example of a complete schema, describing the same class of documents, and written in a completely different style called "Russian doll design." Chapter 4 W3C XML Schema also provides datatyping. In this chapter, we explore how these types can be bound to the content of our document. Chapter 5 This chapter guides you through the process of defining your own simple types. Chapter 6 This chapter explores how to constrain new datatypes using regular expressions. Chapter 7 Now that we know all about simple types, this chapter explores the different complex types that can be used to define structures within an XML document. Chapter 8 This chapter shows how to organize schema tools into reusable building blocks. Chapter 9 In addition to content (simple types) and structure (complex types), W3C XML Schema can constrain the identifiers and references within a document. We explore this feature in this chapter. Chapter 10 Support for XML namespaces is one of the top requirements of W3C XML Schema. This chapter explains how this requirement has been implemented and its implications. Chapter 11 This chapter shows how schema information may be embedded in the XML instance documents. Chapter 12 This chapter explains how more building blocks may be defined, by playing with namespaces and justifying the object-oriented qualification given to W3C XML Schema. Chapter 13 This chapter gives some hints to write extensible and open schemas. Chapter 14 This chapter shows how schemas can be documented and made more readable, either by humans or programs. Chapter 15 This is a quick reference guide to the elements used by W3C XML Schema. Chapter 16 This is a quick reference guide to the W3C XML Schema predefined types. Appendix A W3C XML Schema is not the only language of its kind. Here we provide a short history of this not-so-new family and see some of its competitors. Appendix B If you want to look ahead at what's to come from the W3C, you may be interested in this list of promising developments yet to be done in relation with W3C XML Schema. Glossary [...]... an XML vocabulary to describe XML vocabularies The W3C's XML Schema Working Group spent two years developing two normative Recommendations, XML Schema Part 1: Structures, and XML Schema Part 2: Datatypes, along with a nonnormative Recommendation, XML Schema Part 0: Primer W3C XML Schema is designed to support all of these applications An initial set of requirements, formally described in the XML Schema. .. Requirements Note (http://www.w3.org/TR/NOTE -xml- schema- req), listed a wide variety of usage scenarios for schemas as well as for the design principles that guided its creation In the rest of this book, we explore the details of W3C XML Schema and its many capabilities, focusing on how to apply it to specific XML document situations Chapter 2 Our First Schema Starting with a simple example (a limited... xs:element(global definition), included directly under the xs :schema document element: / The value used to reference the datatype (xs:string) is prefixed by xs, the prefix associated with W3C XML Schema This means that xs:string is a predefined W3C XML Schema datatype The same can be done for all the... lang="en"> Being a Dog Is a Full-Time Job Charles M Schulz 192 2-1 1-2 6 200 0-0 2-1 2 Peppermint Patty 196 6-0 8-2 2 bold, brash and tomboyish Snoopy 195 0-1 0-0 4 extroverted... lang We will build our first schema by defining each element in turn under our schema document element (named, unsurprisingly, schema) , which belongs to the W3C XML Schema namespace (http://www.w3.org/2001/XMLSchema) and is usually prefixed as "xs." Before we start, we need to classify the elements and, for this exercise, give some key definitions for understanding how W3C XML Schema does this classification... Documentation XML schemas are frequently used to document XML vocabularies, even when validation isn't a requirement Schemas provide a formal description of the vocabulary with a precision and conciseness that can be difficult to achieve in prose It is very unusual to publish the specification of a new XML vocabulary without attaching some form of XML schema The machine-readability of schemas gives... XML developers quickly outgrew the capabilities DTDs provide An alternative schema proposal, XML- Data, was even submitted to the W3C before XML 1.0 was a Recommendation The World Wide Web Consortium (W3C), keeper of the XML specification, sought to build a new language for describing XML documents It needed to provide more precision in describing document structures and their contents, to support XML. .. binding tools rely on a model formalized in a schema of some kind He describes this category as "usually more flexible in the mappings they can support." Many different languages, either specific or general-purpose XML schema languages, define these bindings W3C XML Schema has a lot of traction in this area; many databinding tools were started to support W3C XML Schema for even its early releases, well... document: < ?xml version="1.0"?> 0836217462 Being a Dog Is a Full-Time Job Charles M Schulz 192 2-1 1-2 6 200 0-0 2-1 2 Snoopy 195 0-1 0-0 4 ... 1.1 What Schemas Do for XML An XML schema language is a formalization of the constraints, expressed as rules or a model of structure, that apply to a class of XML documents In many ways, schemas serve as design tools, establishing a framework on which implementations can be built Since formalization is a necessary ground for software designers, formalizing the constraints and structures of XML instance . you want to: • Create W3C XML Schema schemas using a text editor, XML editor, or a W3C XML Schema IDE or editor. • Understand and modify existing W3C XML Schema schemas. You should already. A.5 XML DTDs 430 A.6 W3C XML Schema 430 A.7 RELAX NG 430 A.8 Schematron 430 A.9 Examplotron 430 A.10 Decisions 430 A.1 What Is a XML Schema Language? 431 A.2 Classification of XML Schema. xs:unsignedShort 429 Appendix A. XML Schema Languages 430 A.1 What Is a XML Schema Language? 430 A.2 Classification of XML Schema Languages 430 A.3 A Short History of XML Schema Languages 430 A.4

Ngày đăng: 25/03/2014, 10:53

TỪ KHÓA LIÊN QUAN