Op werkdagen voor 23:00 besteld, morgen in huis Gratis verzending vanaf €20

Definitive XML Schema

Specificaties
E-book, blz. | Engels
Pearson Education | 2012
ISBN13: 9780132886758
Rubricering
Pearson Education e druk, 2012 9780132886758
Verwachte levertijd ongeveer 9 werkdagen

Samenvatting

“XML Schema 1.1 has gone from strong data typing to positively stalwart—so powerful it can enforce database level constraints and business rules, so your data transfer code won’t have to. This book covers the 1.1 changes—and more—in its 500 revisions to Priscilla Walmsley’s 10-year best-selling classic. It’s the guide you need to navigate XML Schema’s complexity—and master its power!”

—Charles F. Goldfarb

 

For Ten Years the World’s Favorite Guide to XML Schema—Now Extensively Revised for Version 1.1 and Today’s Best Practices!

 

To leverage XML’s full power, organizations need shared vocabularies based on XML Schema. For a full decade, Definitive XML Schema has been the most practical, accessible, and usable guide to working with XML Schema. Now, author Priscilla Walmsley has thoroughly updated her classic to fully reflect XML Schema 1.1, and to present new best practices for designing successful schemas.

 

Priscilla helped create XML Schema as a member of the W3C XML Schema Working Group, so she is well qualified to explain the W3C recommendation with insight and clarity. Her book teaches practical techniques for writing schemas to support any application, including many new use cases. You’ll discover how XML Schema 1.1 provides a rigorous, complete specification for modeling XML document structure, content, and datatypes; and walk through the many aspects of designing and applying schemas, including composition, instance validation, documentation, and namespaces. Then, building on the fundamentals, Priscilla introduces powerful advanced techniques ranging from type derivation to identity constraints. This edition’s extensive new coverage includes

  Many new design hints, tips, and tricks – plus a full chapter on creating an enterprise strategy for schema development and maintenance Design considerations in creating schemas for relational and object-oriented models, narrative content, and Web services An all-new chapter on assertions Coverage of new 1.1 features, including overrides, conditional type assignment, open content and more Modernized rules for naming and design Substantially updated coverage of extensibility, reuse, and versioning And much more

 

If you’re an XML developer, architect, or content specialist, with this Second Edition you can join the tens of thousands who rely on Definitive XML Schema for practical insights, deeper understanding, and solutions that work.

 

Specificaties

ISBN13:9780132886758
Taal:Engels
Bindwijze:e-book

Inhoudsopgave

<p style="margin:0px;">Foreword xxxi</p> <p style="margin:0px;">Acknowledgments xxxiii</p> <p style="margin:0px;">How to use this book xxxv</p> <p style="margin:0px;">Chapter 1 Schemas: An introduction 2</p> <p style="margin:0px;">1.1 What is a schema? 3</p> <p style="margin:0px;">1.2 The purpose of schemas 5</p> <p style="margin:0px;">1.2.1 Data validation 5</p> <p style="margin:0px;">1.2.2 A contract with trading partners 5</p> <p style="margin:0px;">1.2.3 System documentation 6</p> <p style="margin:0px;">1.2.4 Providing information to processors 6</p> <p style="margin:0px;">1.2.5 Augmentation of data 6</p> <p style="margin:0px;">1.2.6 Application information 6</p> <p style="margin:0px;">1.3 Schema design 7</p> <p style="margin:0px;">1.3.1 Accuracy and precision 7</p> <p style="margin:0px;">1.3.2 Clarity 8</p> <p style="margin:0px;">1.3.3 Broad applicability 8</p> <p style="margin:0px;">1.4 Schema languages 9</p> <p style="margin:0px;">1.4.1 Document Type Definition (DTD) 9</p> <p style="margin:0px;">1.4.2 Schema requirements expand 10</p> <p style="margin:0px;">1.4.3 W3C XML Schema 11</p> <p style="margin:0px;">1.4.4 Other schema languages 12</p> <p style="margin:0px;">1.4.4.1 RELAX NG 12</p> <p style="margin:0px;">1.4.4.2 Schematron 13</p> <p style="margin:0px;">Chapter 2 A quick tour of XML Schema 16</p> <p style="margin:0px;">2.1 An example schema 17</p> <p style="margin:0px;">2.2 The components of XML Schema 18</p> <p style="margin:0px;">2.2.1 Declarations vs. definitions 18</p> <p style="margin:0px;">2.2.2 Global vs. local components 19</p> <p style="margin:0px;">2.3 Elements and attributes 20</p> <p style="margin:0px;">2.3.1 The tag/type distinction 20</p> <p style="margin:0px;">2.4 Types 21</p> <p style="margin:0px;">2.4.1 Simple vs. complex types 21</p> <p style="margin:0px;">2.4.2 Named vs. anonymous types 22</p> <p style="margin:0px;">2.4.3 The type definition hierarchy 22</p> <p style="margin:0px;">2.5 Simple types 23</p> <p style="margin:0px;">2.5.1 Built-in simple types 23</p> <p style="margin:0px;">2.5.2 Restricting simple types 24</p> <p style="margin:0px;">2.5.3 List and union types 24</p> <p style="margin:0px;">2.6 Complex types 25</p> <p style="margin:0px;">2.6.1 Content types 25</p> <p style="margin:0px;">2.6.2 Content models 26</p> <p style="margin:0px;">2.6.3 Deriving complex types 27</p> <p style="margin:0px;">2.7 Namespaces and XML Schema 28</p> <p style="margin:0px;">2.8 Schema composition 29</p> <p style="margin:0px;">2.9 Instances and schemas 30</p> <p style="margin:0px;">2.10 Annotations 31</p> <p style="margin:0px;">2.11 Advanced features 32</p> <p style="margin:0px;">2.11.1 Named groups 32</p> <p style="margin:0px;">2.11.2 Identity constraints 32</p> <p style="margin:0px;">2.11.3 Substitution groups 32</p> <p style="margin:0px;">2.11.4 Redefinition and overriding 33</p> <p style="margin:0px;">2.11.5 Assertions 33</p> <p style="margin:0px;">Chapter 3 Namespaces 34</p> <p style="margin:0px;">3.1 Namespaces in XML 35</p> <p style="margin:0px;">3.1.1 Namespace names 36</p> <p style="margin:0px;">3.1.2 Namespace declarations and prefixes 37</p> <p style="margin:0px;">3.1.3 Default namespace declarations 39</p> <p style="margin:0px;">3.1.4 Name terminology 40</p> <p style="margin:0px;">3.1.5 Scope of namespace declarations 41</p> <p style="margin:0px;">3.1.6 Overriding namespace declarations 42</p> <p style="margin:0px;">3.1.7 Undeclaring namespaces 43</p> <p style="margin:0px;">3.1.8 Attributes and namespaces 44</p> <p style="margin:0px;">3.1.9 A summary example 46</p> <p style="margin:0px;">3.2 The relationship between namespaces and schemas 48</p> <p style="margin:0px;">3.3 Using namespaces in schemas 48</p> <p style="margin:0px;">3.3.1 Target namespaces 48</p> <p style="margin:0px;">3.3.2 The XML Schema Namespace 50</p> <p style="margin:0px;">3.3.3 The XML Schema Instance Namespace 51</p> <p style="margin:0px;">3.3.4 The Version Control Namespace 51</p> <p style="margin:0px;">3.3.5 Namespace declarations in schema documents 52</p> <p style="margin:0px;">3.3.5.1 Map a prefix to the XML Schema Namespace 52</p> <p style="margin:0px;">3.3.5.2 Map a prefix to the target namespace 53</p> <p style="margin:0px;">3.3.5.3 Map prefixes to all namespaces 54</p> <p style="margin:0px;">Chapter 4 Schema composition 56</p> <p style="margin:0px;">4.1 Modularizing schema documents 57</p> <p style="margin:0px;">4.2 Defining schema documents 58</p> <p style="margin:0px;">4.3 Combining multiple schema documents 61</p> <p style="margin:0px;">4.3.1 include 62</p> <p style="margin:0px;">4.3.1.1 The syntax of includes 63</p> <p style="margin:0px;">4.3.1.2 Chameleon includes 65</p> <p style="margin:0px;">4.3.2 import 66</p> <p style="margin:0px;">4.3.2.1 The syntax of imports 67</p> <p style="margin:0px;">4.3.2.2 Multiple levels of imports 70</p> <p style="margin:0px;">4.3.2.3 Multiple imports of the same namespace 72</p> <p style="margin:0px;">4.4 Schema assembly considerations 75</p> <p style="margin:0px;">4.4.1 Uniqueness of qualified names 75</p> <p style="margin:0px;">4.4.2 Missing components 76</p> <p style="margin:0px;">4.4.3 Schema document defaults 77</p> <p style="margin:0px;">Chapter 5 Instances and schemas 78</p> <p style="margin:0px;">5.1 Using the instance attributes 79</p> <p style="margin:0px;">5.2 Schema processing 81</p> <p style="margin:0px;">5.2.1 Validation 81</p> <p style="margin:0px;">5.2.2 Augmenting the instance 82</p> <p style="margin:0px;">5.3 Relating instances to schemas 83</p> <p style="margin:0px;">5.3.1 Using hints in the instance 84</p> <p style="margin:0px;">5.3.1.1 The xsi:schemaLocation attribute 84</p> <p style="margin:0px;">5.3.1.2 The xsi:noNamespaceSchemaLocation attribute 86</p> <p style="margin:0px;">5.4 The root element 87</p> <p style="margin:0px;">Chapter 6 Element declarations 88</p> <p style="margin:0px;">6.1 Global and local element declarations 89</p> <p style="margin:0px;">6.1.1 Global element declarations 89</p> <p style="margin:0px;">6.1.2 Local element declarations 93</p> <p style="margin:0px;">6.1.3 Design hint: Should I use global or local element</p> <p style="margin:0px;">declarations? 95</p> <p style="margin:0px;">6.2 Declaring the types of elements 96</p> <p style="margin:0px;">6.3 Qualified vs. unqualified forms 98</p> <p style="margin:0px;">6.3.1 Qualified local names 98</p> <p style="margin:0px;">6.3.2 Unqualified local names 98</p> <p style="margin:0px;">6.3.3 Using elementFormDefault 99</p> <p style="margin:0px;">6.3.4 Using form 100</p> <p style="margin:0px;">6.3.5 Default namespaces and unqualified names 101</p> <p style="margin:0px;">6.4 Default and fixed values 101</p> <p style="margin:0px;">6.4.1 Default values 102</p> <p style="margin:0px;">6.4.2 Fixed values 103</p> <p style="margin:0px;">6.5 Nils and nillability 105</p> <p style="margin:0px;">6.5.1 Using xsi:nil in an instance 108</p> <p style="margin:0px;">6.5.2 Making elements nillable 109</p> <p style="margin:0px;">Chapter 7 Attribute declarations 112</p> <p style="margin:0px;">7.1 Attributes vs. elements 113</p> <p style="margin:0px;">7.2 Global and local attribute declarations 115</p> <p style="margin:0px;">7.2.1 Global attribute declarations 115</p> <p style="margin:0px;">7.2.2 Local attribute declarations 117</p> <p style="margin:0px;">7.2.3 Design hint: Should I use global or local attributedeclarations? 119</p> <p style="margin:0px;">7.3 Declaring the types of attributes 120</p> <p style="margin:0px;">7.4 Qualified vs. unqualified forms 122</p> <p style="margin:0px;">7.5 Default and fixed values 123</p> <p style="margin:0px;">7.5.1 Default values 124</p> <p style="margin:0px;">7.5.2 Fixed values 125</p> <p style="margin:0px;">7.6 Inherited attributes 126</p> <p style="margin:0px;">Chapter 8 Simple types 128</p> <p style="margin:0px;">8.1 Simple type varieties 129</p> <p style="margin:0px;">8.1.1 Design hint: How much should I break down my datavalues? 130</p> <p style="margin:0px;">8.2 Simple type definitions 131</p> <p style="margin:0px;">8.2.1 Named simple types 131</p> <p style="margin:0px;">8.2.2 Anonymous simple types 132</p> <p style="margin:0px;">8.2.3 Design hint: Should I use named or anonymous types? 133</p> <p style="margin:0px;">8.3 Simple type restrictions 135</p> <p style="margin:0px;">8.3.1 Defining a restriction 136</p> <p style="margin:0px;">8.3.2 Overview of the facets 137</p> <p style="margin:0px;">8.3.3 Inheriting and restricting facets 139</p> <p style="margin:0px;">8.3.4 Fixed facets 140</p> <p style="margin:0px;">8.3.4.1 Design hint: When should I fix a facet? 141</p> <p style="margin:0px;">8.4 Facets 142</p> <p style="margin:0px;">8.4.1 Bounds facets 142</p> <p style="margin:0px;">8.4.2 Length facets 143</p> <p style="margin:0px;">8.4.2.1 Design hint: What if I want to allow empty values? 143</p> <p style="margin:0px;">8.4.2.2 Design hint: What if I want to restrict the length of an integer? 144</p> <p style="margin:0px;">8.4.3 totalDigits and fractionDigits 145</p> <p style="margin:0px;">8.4.4 Enumeration 145</p> <p style="margin:0px;">8.4.5 Pattern 148</p> <p style="margin:0px;">8.4.6 Assertion 150</p> <p style="margin:0px;">8.4.7 Explicit Time Zone 150</p> <p style="margin:0px;">8.4.8 Whitespace 151</p> <p style="margin:0px;">8.5 Preventing simple type derivation 152</p> <p style="margin:0px;">8.6 Implementation-defined types and facets 154</p> <p style="margin:0px;">8.6.1 Implementation-defined types 154</p> <p style="margin:0px;">8.6.2 Implementation-defined facets 155</p> <p style="margin:0px;">Chapter 9 Regular expressions 158</p> <p style="margin:0px;">9.1 The structure of a regular expression 159</p> <p style="margin:0px;">9.2 Atoms 161</p> <p style="margin:0px;">9.2.1 Normal characters 162</p> <p style="margin:0px;">9.2.2 The wildcard escape character 164</p> <p style="margin:0px;">9.2.3 Character class escapes 164</p> <p style="margin:0px;">9.2.3.1 Single-character escapes 165</p> <p style="margin:0px;">9.2.3.2 Multicharacter escapes 166</p> <p style="margin:0px;">9.2.3.3 Category escapes 167</p> <p style="margin:0px;">9.2.3.4 Block escapes 170</p> <p style="margin:0px;">9.2.4 Character class expressions 171</p> <p style="margin:0px;">9.2.4.1 Listing individual characters 171</p> <p style="margin:0px;">9.2.4.2 Specifying a range 172</p> <p style="margin:0px;">9.2.4.3 Combining individual characters and ranges 173</p> <p style="margin:0px;">9.2.4.4 Negating a character class expression 173</p> <p style="margin:0px;">9.2.4.5 Subtracting from a character class expression 174</p> <p style="margin:0px;">9.2.4.6 Escaping rules for character class expressions 175</p> <p style="margin:0px;">9.2.5 Parenthesized regular expressions 175</p> <p style="margin:0px;">9.3 Quantifiers 176</p> <p style="margin:0px;">9.4 Branches 177</p> <p style="margin:0px;">Chapter 10 Union and list types 180</p> <p style="margin:0px;">10.1 Varieties and derivation types 181</p> <p style="margin:0px;">10.2 Union types 183</p> <p style="margin:0px;">10.2.1 Defining union types 183</p> <p style="margin:0px;">10.2.2 Restricting union types 185</p> <p style="margin:0px;">10.2.3 Unions of unions 186</p> <p style="margin:0px;">10.2.4 Specifying the member type in the instance 187</p> <p style="margin:0px;">10.3 List types 188</p> <p style="margin:0px;">10.3.1 Defining list types 188</p> <p style="margin:0px;">10.3.2 Design hint: When should I use lists? 189</p> <p style="margin:0px;">10.3.3 Restricting list types 190</p> <p style="margin:0px;">10.3.3.1 Length facets 192</p> <p style="margin:0px;">10.3.3.2 Enumeration facet 192</p> <p style="margin:0px;">10.3.3.3 Pattern facet 194</p> <p style="margin:0px;">10.3.4 Lists and strings 195</p> <p style="margin:0px;">10.3.5 Lists of unions 196</p> <p style="margin:0px;">10.3.6 Lists of lists 196</p> <p style="margin:0px;">10.3.7 Restricting the item type 198</p> <p style="margin:0px;">Chapter 11 Built-in simple types 200</p> <p style="margin:0px;">11.1 The XML Schema type system 201</p> <p style="margin:0px;">11.1.1 The type hierarchy 202</p> <p style="margin:0px;">11.1.2 Value spaces and lexical spaces 204</p> <p style="margin:0px;">11.1.3 Facets and built-in types 204</p> <p style="margin:0px;">11.2 String-based types 205</p> <p style="margin:0px;">11.2.1 string, normalizedString, and token 205</p> <p style="margin:0px;">11.2.1.1 Design hint: Should I use string, normalizedString, or token? 207</p> <p style="margin:0px;">11.2.2 Name 208</p> <p style="margin:0px;">11.2.3 NCName 210</p> <p style="margin:0px;">11.2.4 language 211</p> <p style="margin:0px;">11.3 Numeric types 213</p> <p style="margin:0px;">11.3.1 float and double 213</p> <p style="margin:0px;">11.3.2 decimal 215</p> <p style="margin:0px;">11.3.3 Integer types 217</p> <p style="margin:0px;">11.3.3.1 Design hint: Is it an integer or a string? 220</p> <p style="margin:0px;">11.4 Date and time types 221</p> <p style="margin:0px;">11.4.1 date 221</p> <p style="margin:0px;">11.4.2 time 222</p> <p style="margin:0px;">11.4.3 dateTime 223</p> <p style="margin:0px;">11.4.4 dateTimeStamp 224</p> <p style="margin:0px;">11.4.5 gYear 225</p> <p style="margin:0px;">11.4.6 gYearMonth 226</p> <p style="margin:0px;">11.4.7 gMonth 227</p> <p style="margin:0px;">11.4.8 gMonthDay 227</p> <p style="margin:0px;">11.4.9 gDay 228</p> <p style="margin:0px;">11.4.10 duration 229</p> <p style="margin:0px;">11.4.11 yearMonthDuration 231</p> <p style="margin:0px;">11.4.12 dayTimeDuration 232</p> <p style="margin:0px;">11.4.13 Representing time zones 233</p> <p style="margin:0px;">11.4.14 Facets 234</p> <p style="margin:0px;">11.4.15 Date and time ordering 235</p> <p style="margin:0px;">11.5 Legacy types 236</p> <p style="margin:0px;">11.5.1 ID 236</p> <p style="margin:0px;">11.5.2 IDREF 237</p> <p style="margin:0px;">11.5.3 IDREFS 239</p> <p style="margin:0px;">11.5.4 ENTITY 240</p> <p style="margin:0px;">11.5.5 ENTITIES 242</p> <p style="margin:0px;">11.5.6 NMTOKEN 243</p> <p style="margin:0px;">11.5.7 NMTOKENS 244</p> <p style="margin:0px;">11.5.8 NOTATION 245</p> <p style="margin:0px;">11.6 Other types 246</p> <p style="margin:0px;">11.6.1 QName 246</p> <p style="margin:0px;">11.6.2 boolean 247</p> <p style="margin:0px;">11.6.3 The binary types 248</p> <p style="margin:0px;">11.6.4 anyURI 250</p> <p style="margin:0px;">11.7 Comparing typed values 253</p> <p style="margin:0px;">Chapter 12 Complex types 256</p> <p style="margin:0px;">12.1 What are complex types? 257</p> <p style="margin:0px;">12.2 Defining complex types 258</p> <p style="margin:0px;">12.2.1 Named complex types 258</p> <p style="margin:0px;">12.2.2 Anonymous complex types 260</p> <p style="margin:0px;">12.2.3 Complex type alternatives 261</p> <p style="margin:0px;">12.3 Content types 262</p> <p style="margin:0px;">12.3.1 Simple content 262</p> <p style="margin:0px;">12.3.2 Element-only content 264</p> <p style="margin:0px;">12.3.3 Mixed content 264</p> <p style="margin:0px;">12.3.4 Empty content 265</p> <p style="margin:0px;">12.4 Using element declarations 266</p> <p style="margin:0px;">12.4.1 Local element declarations 266</p> <p style="margin:0px;">12.4.2 Element references 267</p> <p style="margin:0px;">12.4.3 Duplication of element names 268</p> <p style="margin:0px;">12.5 Using model groups 270</p> <p style="margin:0px;">12.5.1 sequence groups 270</p> <p style="margin:0px;">12.5.1.1 Design hint: Should I care about the order of elements? 272</p> <p style="margin:0px;">12.5.2 choice groups 273</p> <p style="margin:0px;">12.5.3 Nesting of sequence and choice groups 275</p> <p style="margin:0px;">12.5.4 all groups 276</p> <p style="margin:0px;">12.5.5 Named model group references 278</p> <p style="margin:0px;">12.5.6 Deterministic content models 279</p> <p style="margin:0px;">12.6 Using attribute declarations 281</p> <p style="margin:0px;">12.6.1 Local attribute declarations 281</p> <p style="margin:0px;">12.6.2 Attribute references 282</p> <p style="margin:0px;">12.6.3 Attribute group references 284</p> <p style="margin:0px;">12.6.4 Default attributes 284</p> <p style="margin:0px;">12.7 Using wildcards 284</p> <p style="margin:0px;">12.7.1 Element wildcards 285</p> <p style="margin:0px;">12.7.1.1 Controlling the namespace of replacement elements 287</p> <p style="margin:0px;">12.7.1.2 Controlling the strictness of validation 287</p> <p style="margin:0px;">12.7.1.3 Negative wildcards 289</p> <p style="margin:0px;">12.7.2 Open content models 292</p> <p style="margin:0px;">12.7.2.1 Open content in a complex type 292</p> <p style="margin:0px;">12.7.2.2 Default open content 295</p> <p style="margin:0px;">12.7.3 Attribute wildcards 298</p> <p style="margin:0px;">Chapter 13 Deriving complex types 300</p> <p style="margin:0px;">13.1 Why derive types? 301</p> <p style="margin:0px;">13.2 Restriction and extension 302</p> <p style="margin:0px;">13.3 Simple content and complex content 303</p> <p style="margin:0px;">13.3.1 simpleContent elements 303</p> <p style="margin:0px;">13.3.2 complexContent elements 304</p> <p style="margin:0px;">13.4 Complex type extensions 305</p> <p style="margin:0px;">13.4.1 Simple content extensions 306</p> <p style="margin:0px;">13.4.2 Complex content extensions 307</p> <p style="margin:0px;">13.4.2.1 Extending choice groups 309</p> <p style="margin:0px;">13.4.2.2 Extending all groups 310</p> <p style="margin:0px;">13.4.2.3 Extending open content 311</p> <p style="margin:0px;">13.4.3 Mixed content extensions 312</p> <p style="margin:0px;">13.4.4 Empty content extensions 313</p> <p style="margin:0px;">13.4.5 Attribute extensions 314</p> <p style="margin:0px;">13.4.6 Attribute wildcard extensions 315</p> <p style="margin:0px;">13.5 Complex type restrictions 316</p> <p style="margin:0px;">13.5.1 Simple content restrictions 317</p> <p style="margin:0px;">13.5.2 Complex content restrictions 318</p> <p style="margin:0px;">13.5.2.1 Eliminating meaningless groups 320</p> <p style="margin:0px;">13.5.2.2 Restricting element declarations 321</p> <p style="margin:0px;">13.5.2.3 Restricting wildcards 322</p> <p style="margin:0px;">13.5.2.4 Restricting groups 324</p> <p style="margin:0px;">13.5.2.5 Restricting open content 329</p> <p style="margin:0px;">13.5.3 Mixed content restrictions 331</p> <p style="margin:0px;">13.5.4 Empty content restrictions 332</p> <p style="margin:0px;">13.5.5 Attribute restrictions 333</p> <p style="margin:0px;">13.5.6 Attribute wildcard restrictions 335</p> <p style="margin:0px;">13.5.7 Restricting types from another namespace 337</p> <p style="margin:0px;">13.5.7.1 Using targetNamespace on element and attribute declarations 339</p> <p style="margin:0px;">13.6 Type substitution 341</p> <p style="margin:0px;">13.7 Controlling type derivation and substitution 343</p> <p style="margin:0px;">13.7.1 final: Preventing complex type derivation 343</p> <p style="margin:0px;">13.7.2 block: Blocking substitution of derived types 344</p> <p style="margin:0px;">13.7.3 Blocking type substitution in element declarations 346</p> <p style="margin:0px;">13.7.4 abstract: Forcing derivation 346</p> <p style="margin:0px;">Chapter 14 Assertions 350</p> <p style="margin:0px;">14.1 Assertions 351</p> <p style="margin:0px;">14.1.1 Assertions for simple types 353</p> <p style="margin:0px;">14.1.1.1 Using XPath 2.0 operators 355</p> <p style="margin:0px;">14.1.1.2 Using XPath 2.0 functions 357</p> <p style="margin:0px;">14.1.1.3 Types and assertions 359</p> <p style="margin:0px;">14.1.1.4 Inheriting simple type assertions 362</p> <p style="margin:0px;">14.1.1.5 Assertions on list types 363</p> <p style="margin:0px;">14.1.2 Assertions for complex types 365</p> <p style="margin:0px;">14.1.2.1 Path expressions 367</p> <p style="margin:0px;">14.1.2.2 Conditional expressions 369</p> <p style="margin:0px;">14.1.2.3 Assertions in derived complex types 370</p> <p style="margin:0px;">14.1.3 Assertions and namespaces 372</p> <p style="margin:0px;">14.1.3.1 Using xpathDefaultNamespace 373</p> <p style="margin:0px;">14.2 Conditional type assignment 375</p> <p style="margin:0px;">14.2.1 The alternative element 376</p> <p style="margin:0px;">14.2.2 Specifying conditional type assignment 377</p> <p style="margin:0px;">14.2.3 Using XPath in the test attribute 378</p> <p style="margin:0px;">14.2.4 The error type 380</p> <p style="margin:0px;">14.2.5 Conditional type assignment and namespaces 381</p> <p style="margin:0px;">14.2.6 Using inherited attributes in conditional type Assignment 382</p> <p style="margin:0px;">Chapter 15 Named groups 384</p> <p style="margin:0px;">15.1 Why named groups? 385</p> <p style="margin:0px;">15.2 Named model groups 386</p> <p style="margin:0px;">15.2.1 Defining named model groups 386</p> <p style="margin:0px;">15.2.2 Referencing named model groups 388</p> <p style="margin:0px;">15.2.2.1 Group references 388</p> <p style="margin:0px;">15.2.2.2 Referencing a named model group in a complex type 389</p> <p style="margin:0px;">15.2.2.3 Using all in named model groups 391</p> <p style="margin:0px;">15.2.2.4 Named model groups referencing named model groups 392</p> <p style="margin:0px;">15.3 Attribute groups 392</p> <p style="margin:0px;">15.3.1 Defining attribute groups 393</p> <p style="margin:0px;">15.3.2 Referencing attribute groups 395</p> <p style="margin:0px;">15.3.2.1 Attribute group references 395</p> <p style="margin:0px;">15.3.2.2 Referencing attribute groups in complex types 396</p> <p style="margin:0px;">15.3.2.3 Duplicate attribute names 397</p> <p style="margin:0px;">15.3.2.4 Duplicate attribute wildcard handling 398</p> <p style="margin:0px;">15.3.2.5 Attribute groups referencing attribute groups 398</p> <p style="margin:0px;">15.3.3 The default attribute group 399</p> <p style="margin:0px;">15.4 Named groups and namespaces 401</p> <p style="margin:0px;">15.5 Design hint: Named groups or complex type derivations? 403</p> <p style="margin:0px;">Chapter 16 Substitution groups 406</p> <p style="margin:0px;">16.1 Why substitution groups? 407</p> <p style="margin:0px;">16.2 The substitution group hierarchy 408</p> <p style="margin:0px;">16.3 Declaring a substitution group 409</p> <p style="margin:0px;">16.4 Type constraints for substitution groups 412</p> <p style="margin:0px;">16.5 Members in multiple groups 413</p> <p style="margin:0px;">16.6 Alternatives to substitution groups 414</p> <p style="margin:0px;">16.6.1 Reusable choice groups 414</p> <p style="margin:0px;">16.6.2 Substituting a derived type in the instance 415</p> <p style="margin:0px;">16.7 Controlling substitution groups 418</p> <p style="margin:0px;">16.7.1 final: Preventing substitution group declarations 418</p> <p style="margin:0px;">16.7.2 block: Blocking substitution in instances 419</p> <p style="margin:0px;">16.7.3 abstract: Forcing substitution 420</p> <p style="margin:0px;">Chapter 17 Identity constraints 422</p> <p style="margin:0px;">17.1 Identity constraint categories 423</p> <p style="margin:0px;">17.2 Design hint: Should I use ID/IDREF or key/keyref? 424</p> <p style="margin:0px;">17.3 Structure of an identity constraint 424</p> <p style="margin:0px;">17.4 Uniqueness constraints 426</p> <p style="margin:0px;">17.5 Key constraints 428</p> <p style="margin:0px;">17.6 Key references 430</p> <p style="margin:0px;">17.6.1 Key references and scope 432</p> <p style="margin:0px;">17.6.2 Key references and type equality 432</p> <p style="margin:0px;">17.7 Selectors and fields 433</p> <p style="margin:0px;">17.7.1 Selectors 433</p> <p style="margin:0px;">17.7.2 Fields 434</p> <p style="margin:0px;">17.8 XPath subset for identity constraints 435</p> <p style="margin:0px;">17.9 Identity constraints and namespaces 439</p> <p style="margin:0px;">17.9.1 Using xpathDefaultNamespace 441</p> <p style="margin:0px;">17.10 Referencing identity constraints 442</p> <p style="margin:0px;">Chapter 18 Redefining and overriding schema components 446</p> <p style="margin:0px;">18.1 Redefinition 448</p> <p style="margin:0px;">18.1.1 Redefinition basics 448</p> <p style="margin:0px;">18.1.1.1 Include plus redefine 450</p> <p style="margin:0px;">18.1.1.2 Redefine and namespaces 450</p> <p style="margin:0px;">18.1.1.3 Pervasive impact 450</p> <p style="margin:0px;">18.1.2 The mechanics of redefinition 451</p> <p style="margin:0px;">18.1.3 Redefining simple types 452</p> <p style="margin:0px;">18.1.4 Redefining complex types 453</p> <p style="margin:0px;">18.1.5 Redefining named model groups 454</p> <p style="margin:0px;">18.1.5.1 Defining a subset 454</p> <p style="margin:0px;">18.1.5.2 Defining a superset 455</p> <p style="margin:0px;">18.1.6 Redefining attribute groups 456</p> <p style="margin:0px;">18.1.6.1 Defining a subset 457</p> <p style="margin:0px;">18.1.6.2 Defining a superset 458</p> <p style="margin:0px;">18.2 Overrides 459</p> <p style="margin:0px;">18.2.1 Override basics 459</p> <p style="margin:0px;">18.2.1.1 Include plus override 461</p> <p style="margin:0px;">18.2.1.2 Override and namespaces 461</p> <p style="margin:0px;">18.2.1.3 Pervasive impact 462</p> <p style="margin:0px;">18.2.2 The mechanics of overriding components 462</p> <p style="margin:0px;">18.2.3 Overriding simple types 464</p> <p style="margin:0px;">18.2.4 Overriding complex types 465</p> <p style="margin:0px;">18.2.5 Overriding element and attribute declarations 466</p> <p style="margin:0px;">18.2.6 Overriding named groups 467</p> <p style="margin:0px;">18.3 Risks of redefines and overrides 468</p> <p style="margin:0px;">18.3.1 Risks of redefining or overriding types 468</p> <p style="margin:0px;">18.3.2 Risks of redefining or overriding named groups 470</p> <p style="margin:0px;">Chapter 19 Topics for DTD users 472</p> <p style="margin:0px;">19.1 Element declarations 473</p> <p style="margin:0px;">19.1.1 Simple types 474</p> <p style="margin:0px;">19.1.2 Complex types with simple content 475</p> <p style="margin:0px;">19.1.3 Complex types with complex content 476</p> <p style="margin:0px;">19.1.4 Mixed content 478</p> <p style="margin:0px;">19.1.5 Empty content 479</p> <p style="margin:0px;">19.1.6 Any content 480</p> <p style="margin:0px;">19.2 Attribute declarations 480</p> <p style="margin:0px;">19.2.1 Attribute types 480</p> <p style="margin:0px;">19.2.2 Enumerated attribute types 481</p> <p style="margin:0px;">19.2.3 Notation attributes 482</p> <p style="margin:0px;">19.2.4 Default values 482</p> <p style="margin:0px;">19.3 Parameter entities for reuse 483</p> <p style="margin:0px;">19.3.1 Reusing content models 484</p> <p style="margin:0px;">19.3.2 Reusing attributes 485</p> <p style="margin:0px;">19.4 Parameter entities for extensibility 486</p> <p style="margin:0px;">19.4.1 Extensions for sequence groups 486</p> <p style="margin:0px;">19.4.2 Extensions for choice groups 489</p> <p style="margin:0px;">19.4.3 Attribute extensions 490</p> <p style="margin:0px;">19.5 External parameter entities 492</p> <p style="margin:0px;">19.6 General entities 493</p> <p style="margin:0px;">19.6.1 Character and other parsed entities 493</p> <p style="margin:0px;">19.6.2 Unparsed entities 493</p> <p style="margin:0px;">19.7 Notations 493</p> <p style="margin:0px;">19.7.1 Declaring a notation 494</p> <p style="margin:0px;">19.7.2 Declaring a notation attribute 495</p> <p style="margin:0px;">19.7.3 Notations and unparsed entities 496</p> <p style="margin:0px;">19.8 Comments 497</p> <p style="margin:0px;">19.9 Using DTDs and schemas together 499</p> <p style="margin:0px;">Chapter 20 XML information modeling 500</p> <p style="margin:0px;">20.1 Data modeling paradigms 502</p> <p style="margin:0px;">20.2 Relational models 503</p> <p style="margin:0px;">20.2.1 Entities and attributes 504</p> <p style="margin:0px;">20.2.2 Relationships 507</p> <p style="margin:0px;">20.2.2.1 One-to-one and one-to-many relationships 507</p> <p style="margin:0px;">20.2.2.2 Many-to-many relationships 507</p> <p style="margin:0px;">20.2.2.2.1 Approach #1: Use containment with repetition 508</p> <p style="margin:0px;">20.2.2.2.2 Approach #2: Use containment with references 510</p> <p style="margin:0px;">20.2.2.2.3 Approach #3: Use relationship elements 512</p> <p style="margin:0px;">20.3 Modeling object-oriented concepts 514</p> <p style="margin:0px;">20.3.1 Inheritance 514</p> <p style="margin:0px;">20.3.2 Composition 519</p> <p style="margin:0px;">20.4 Modeling web services 522</p> <p style="margin:0px;">20.5 Considerations for narrative content 524</p> <p style="margin:0px;">20.5.1 Semantics vs. style 524</p> <p style="margin:0px;">20.5.1.1 Benefits of excluding styling 524</p> <p style="margin:0px;">20.5.1.2 Rendition elements: “block” and “inline” 525</p> <p style="margin:0px;">20.5.2 Considerations for schema design 526</p> <p style="margin:0px;">20.5.2.1 Flexibility 526</p> <p style="margin:0px;">20.5.2.2 Reusing existing vocabularies 526</p> <p style="margin:0px;">20.5.2.3 Attributes are for metadata 526</p> <p style="margin:0px;">20.5.2.4 Humans write the documents 527</p> <p style="margin:0px;">20.6 Considerations for a hierarchical model 527</p> <p style="margin:0px;">20.6.1 Intermediate elements 527</p> <p style="margin:0px;">20.6.2 Wrapper lists 531</p> <p style="margin:0px;">20.6.3 Level of granularity 532</p> <p style="margin:0px;">20.6.4 Generic vs. specific elements 533</p> <p style="margin:0px;">Chapter 21 Schema design and documentation 538</p> <p style="margin:0px;">21.1 The importance of schema design 539</p> <p style="margin:0px;">21.2 Uses for schemas 540</p> <p style="margin:0px;">21.3 Schema design goals 542</p> <p style="margin:0px;">21.3.1 Flexibility and extensibility 542</p> <p style="margin:0px;">21.3.2 Reusability 543</p> <p style="margin:0px;">21.3.3 Clarity and simplicity 545</p> <p style="margin:0px;">21.3.3.1 Naming and documentation 545</p> <p style="margin:0px;">21.3.3.2 Clarity of structure 546</p> <p style="margin:0px;">21.3.3.3 Simplicity 546</p> <p style="margin:0px;">21.3.4 Support for graceful versioning 547</p> <p style="margin:0px;">21.3.5 Interoperability and tool compatibility 547</p> <p style="margin:0px;">21.4 Developing a schema design strategy 548</p> <p style="margin:0px;">21.5 Schema organization considerations 550</p> <p style="margin:0px;">21.5.1 Global vs. local components 550</p> <p style="margin:0px;">21.5.1.1 Russian Doll 551</p> <p style="margin:0px;">21.5.1.2 Salami Slice 553</p> <p style="margin:0px;">21.5.1.3 Venetian Blind 554</p> <p style="margin:0px;">21.5.1.4 Garden of Eden 555</p> <p style="margin:0px;">21.5.2 Modularizing schema documents 557</p> <p style="margin:0px;">21.6 Naming considerations 559</p> <p style="margin:0px;">21.6.1 Rules for valid XML names 559</p> <p style="margin:0px;">21.6.2 Separators 560</p> <p style="margin:0px;">21.6.3 Name length 560</p> <p style="margin:0px;">21.6.4 Standard terms and abbreviations 561</p> <p style="margin:0px;">21.6.5 Use of object terms 562</p> <p style="margin:0px;">21.7 Namespace considerations 564</p> <p style="margin:0px;">21.7.1 Whether to use namespaces 564</p> <p style="margin:0px;">21.7.2 Organizing namespaces 565</p> <p style="margin:0px;">21.7.2.1 Same namespace 565</p> <p style="margin:0px;">21.7.2.2 Different namespaces 568</p> <p style="margin:0px;">21.7.2.3 Chameleon namespaces 572</p> <p style="margin:0px;">21.7.3 Qualified vs. unqualified forms 575</p> <p style="margin:0px;">21.7.3.1 Qualified local names 575</p> <p style="margin:0px;">21.7.3.2 Unqualified local names 576</p> <p style="margin:0px;">21.7.3.3 Using form in schemas 576</p> <p style="margin:0px;">21.7.3.4 Form and global element declarations 578</p> <p style="margin:0px;">21.7.3.5 Default namespaces and unqualified names 578</p> <p style="margin:0px;">21.7.3.6 Qualified vs. unqualified element names 579</p> <p style="margin:0px;">21.7.3.7 Qualified vs. unqualified attribute names 580</p> <p style="margin:0px;">21.8 Schema documentation 580</p> <p style="margin:0px;">21.8.1 Annotations 581</p> <p style="margin:0px;">21.8.2 User documentation 582</p> <p style="margin:0px;">21.8.2.1 Documentation syntax 582</p> <p style="margin:0px;">21.8.2.2 Data element definitions 584</p> <p style="margin:0px;">21.8.2.3 Code documentation 585</p> <p style="margin:0px;">21.8.2.4 Section comments 585</p> <p style="margin:0px;">21.8.3 Application information 586</p> <p style="margin:0px;">21.8.4 Non-native attributes 588</p> <p style="margin:0px;">21.8.4.1 Design hint: Should I use annotations or non-native attributes? 589</p> <p style="margin:0px;">21.8.5 Documenting namespaces 589</p> <p style="margin:0px;">Chapter 22 Extensibility and reuse 594</p> <p style="margin:0px;">22.1 Reuse 596</p> <p style="margin:0px;">22.1.1 Reusing schema components 596</p> <p style="margin:0px;">22.1.2 Creating schemas that are highly reusable 597</p> <p style="margin:0px;">22.1.3 Developing a common components library 597</p> <p style="margin:0px;">22.2 Extending schemas 599</p> <p style="margin:0px;">22.2.1 Wildcards 601</p> <p style="margin:0px;">22.2.2 Open content 604</p> <p style="margin:0px;">22.2.3 Type substitution 605</p> <p style="margin:0px;">22.2.4 Substitution groups 607</p> <p style="margin:0px;">22.2.5 Type redefinition 609</p> <p style="margin:0px;">22.2.6 Named group redefinition 611</p> <p style="margin:0px;">22.2.7 Overrides 612</p> <p style="margin:0px;">Chapter 23 Versioning 616</p> <p style="margin:0px;">23.1 Schema compatibility 617</p> <p style="margin:0px;">23.1.1 Backward compatibility 618</p> <p style="margin:0px;">23.1.2 Forward compatibility 623</p> <p style="margin:0px;">23.2 Using version numbers 626</p> <p style="margin:0px;">23.2.1 Major and minor versions 626</p> <p style="margin:0px;">23.2.2 Placement of version numbers 628</p> <p style="margin:0px;">23.2.2.1 Version numbers in schema documents 628</p> <p style="margin:0px;">23.2.2.2 Versions in schema locations 630</p> <p style="margin:0px;">23.2.2.3 Versions in instances 631</p> <p style="margin:0px;">23.2.2.4 Versions in namespace names 632</p> <p style="margin:0px;">23.2.2.5 A combination strategy 633</p> <p style="margin:0px;">23.3 Application compatibility 634</p> <p style="margin:0px;">23.4 Lessening the impact of versioning 635</p> <p style="margin:0px;">23.4.1 Define a versioning strategy 636</p> <p style="margin:0px;">23.4.2 Make only necessary changes 636</p> <p style="margin:0px;">23.4.3 Document all changes 637</p> <p style="margin:0px;">23.4.4 Deprecate components before deleting them 638</p> <p style="margin:0px;">23.4.5 Provide a conversion capability 639</p> <p style="margin:0px;">23.5 Versions of the XML Schema language 639</p> <p style="margin:0px;">23.5.1 New features in version 1.1 640</p> <p style="margin:0px;">23.5.2 Forward compatibility of XML Schema 1.1 641</p> <p style="margin:0px;">23.5.3 Portability of implementation-defined types and facets 642</p> <p style="margin:0px;">23.5.3.1 Using typeAvailable and typeUnavailable 644</p> <p style="margin:0px;">23.5.3.2 Using facetAvailable and facetUnavailable 645</p> <p style="margin:0px;">Appendix A XSD keywords 648</p> <p style="margin:0px;">A.1 Elements 649</p> <p style="margin:0px;">A.2 Attributes 671</p> <p style="margin:0px;">Appendix B Built-in simple types 690</p> <p style="margin:0px;">B.1 Built-in simple types 691</p> <p style="margin:0px;">B.2 Applicability of facets to built-in simple types 695</p> <p style="margin:0px;">Index 699</p>

Rubrieken

Populaire producten

    Personen

      Trefwoorden

        Definitive XML Schema