XML Serialization

Total Page:16

File Type:pdf, Size:1020Kb

XML Serialization XML Serialization Preliminary February 1, 2003 Times is a trademark of Heidelberger Apple Computer, Inc. Druckmaschinen AG, available from © 2004 Apple Computer, Inc. Linotype Library GmbH. All rights reserved. Simultaneously published in the United States and Canada. No part of this publication may be Even though Apple has reviewed this manual, reproduced, stored in a retrieval system, or APPLE MAKES NO WARRANTY OR transmitted, in any form or by any means, REPRESENTATION, EITHER EXPRESS OR IMPLIED, WITH RESPECT TO THIS MANUAL, mechanical, electronic, photocopying, ITS QUALITY, ACCURACY, recording, or otherwise, without prior MERCHANTABILITY, OR FITNESS FOR A written permission of Apple Computer, Inc., PARTICULAR PURPOSE. AS A RESULT, THIS MANUAL IS SOLD ªAS IS,º AND YOU, THE with the following exceptions: Any person PURCHASER, ARE ASSUMING THE ENTIRE is hereby authorized to store documentation RISK AS TO ITS QUALITY AND ACCURACY. on a single computer for personal use only IN NO EVENT WILL APPLE BE LIABLE FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, and to print copies of documentation for OR CONSEQUENTIAL DAMAGES personal use provided that the RESULTING FROM ANY DEFECT OR documentation contains Apple’s copyright INACCURACY IN THIS MANUAL, even if advised of the possibility of such damages. notice. THE WARRANTY AND REMEDIES SET The Apple logo is a trademark of Apple FORTH ABOVE ARE EXCLUSIVE AND IN LIEU OF ALL OTHERS, ORAL OR WRITTEN, Computer, Inc. EXPRESS OR IMPLIED. No Apple dealer, agent, or employee is authorized to make any Use of the “keyboard” Apple logo modification, extension, or addition to this (Option-Shift-K) for commercial purposes warranty. without the prior written consent of Apple Some states do not allow the exclusion or may constitute trademark infringement and limitation of implied warranties or liability for incidental or consequential damages, so the unfair competition in violation of federal above limitation or exclusion may not apply to and state laws. you. This warranty gives you specific legal rights, and you may also have other rights which No licenses, express or implied, are granted vary from state to state. with respect to any of the technology described in this document. Apple retains all intellectual property rights associated with the technology described in this document. This document is intended to assist application developers to develop applications only for Apple-labeled or Apple-licensed computers. Every effort has been made to ensure that the information in this document is accurate. Apple is not responsible for typographical errors. Apple Computer, Inc. 1 Infinite Loop Cupertino, CA 95014 408-996-1010 Apple, the Apple logo, Mac, Mac OS, and WebObjects are trademarks of Apple Computer, Inc., registered in the United States and other countries. Java and all Java-based trademarks are trademarks or registered trademarks of Sun Microsystems, Inc. in the U.S. and other countries. SPEC is a trademark of the Standard Performance Evaluation Corporation (SPEC). Contents Chapter 1 About This Document 9 What You Should Already Know 9 Contents 9 Related Documentation 10 Additional Resources 11 Chapter 2 Introduction to XML Serialization 13 XML Documents 13 XML Namespaces 16 Benefits of XML Serialization 18 Transforming XML Documents 18 Chapter 3 XML Serialization Essentials 19 Serialization Process 20 Deserialization Process 21 Secure Serialization 22 Validation of Deserialized Data 24 Multiple Class Version Support 25 Serialization With Keys 27 Application Security 27 Chapter 4 Serializing Objects and Data 29 Binary Serialization Example 29 Creating the Serialization Project 29 Adding the BinarySerializer Class 30 Serializing an NSArray of Strings 30 Serializing Primitive-Type Values 33 Serializing Custom Objects 35 XML Serialization Example 41 Adding the XMLSerializer Class 41 Serializing an NSArray of Strings to an XML Document 41 Serializing Primitive-Type Values to an XML Document 43 Serializing With Keys 46 Serializing Custom Objects to an XML Document 47 3 Preliminary © 2004 Apple Computer, Inc. All Rights Reserved. CONTENTS Formatting Serialized Output 49 Chapter 5 XML Transformation 51 Structure of Serialized Data in WebObjects 51 XSL Transformations 52 XML Parsers and XSLT Processors 54 Serialization and Transformation Performance 55 Chapter 6 Transforming XML Documents 57 The Transformation Process 57 Creating the Transformation Project 60 Transforming Primitive-Type Values Using Keys 61 Transforming an Array of Movies 62 Appendix A XML Schema and DTD Files 65 XML Schema File 65 DTD Document File 75 Appendix B Code Listings 85 BinarySerialization.java 85 XMLSerializer.java 89 SimpleTransformation.xsl 95 Document Revision History 99 Glossary 101 Index 103 4 Preliminary © 2004 Apple Computer, Inc. All Rights Reserved. Tables, Figures, and Listings Chapter 2 Introduction to XML Serialization 13 Figure 2-1 Graphical representation of the service-request document 15 Listing 2-1 Service-request document 13 Listing 2-2 Service-response document 16 Listing 2-3 Service-response document using namespaces 17 Listing 2-4 Service-response document using a default namespace for the provider entity 17 Chapter 3 XML Serialization Essentials 19 Listing 3-1 Example of a serialization method 20 Listing 3-2 Example of a deserialization method 21 Listing 3-3 Example of a secure class 22 Listing 3-4 Example of a class that disallows serialization and deserialization by throwing NotSerializableException 23 Listing 3-5 Example of a class that validates deserialized data 24 Listing 3-6 Security-manager policies required for XML serialization in WebObjects for Mac OS X 27 Listing 3-7 Security-manager policies required for XML serialization in WebObjects for Windows 28 Table 3-1 Compatible and incompatible changes for new class versions 26 Chapter 4 Serializing Objects and Data 29 Figure 4-1 Project Builder's Run pane when running the array-serialization example 32 Figure 4-2 BinaryTitles_data.binary file viewed through a text editor 32 Figure 4-3 Project Builder's Run pane when running the primitive-values serialization example 35 Figure 4-4 Project Builder's Run pane when running the Movie-object serialization example 39 Figure 4-5 Project Builder's Run pane when running the Movie-array serialization example 41 Figure 4-6 The element hierarchy of the BoolTitles_data.xml document 43 Listing 4-1 The serializeArray, deserializeArray, and arraySerialization methods in Application.java 31 Listing 4-2 The constructor in Application.java 31 Listing 4-3 The serializePrimitives, deserializePrimitives, and primitiveSerialization methods in Application.java 33 5 Preliminary © 2004 Apple Computer, Inc. All Rights Reserved. TABLES, FIGURES, AND LISTINGS Listing 4-4 Movie.java using binary serialization 35 Listing 4-5 The serializeMovie, deserializeMovie, and movieSerialization methods in Application.java 38 Listing 4-6 The serializeMovieArray, deserializeMovieArray, and movieArraySerialization methods of Application.java 39 Listing 4-7 The serializeArray and deserializeArray methods in Application.java using XML serialization 42 Listing 4-8 BookTitles_data.xml (serialized array of Strings) 42 Listing 4-9 The serializePrimitives, deserializePrimitives and primitiveSerialization methods in Application.java using XML serialization 44 Listing 4-10 The PrimitiveValues_data.xml file 45 Listing 4-11 The serializePrimitives method of Application.java using keys to identify elements in XML document 46 Listing 4-12 The PrimitiveValues_data.xml file with keys identifying each element 46 Listing 4-13 The writeObject method in Movie.java using XML serialization with keys 47 Listing 4-14 The Movies_data.xml file 48 Listing 4-15 Setting the indenting and encoding properties of an NSXMLOutputFormat object and applying them to an NSXMLOutputStream object 49 Table 4-1 Output-format properties accessible through NSXMLOutputFormat 49 Chapter 5 XML Transformation 51 Figure 5-1 Diagram of the schema for WebObjects XML serialization 52 Listing 5-1 Example of a target document 52 Listing 5-2 Section of SimpleTransformation.xsl that processes woxml:object elements 53 Chapter 6 Transforming XML Documents 57 Listing 6-1 The transformObject method in XMLSerializer .java 57 Listing 6-2 The openStream method in XMLSerializer.java 58 Listing 6-3 The initializeTransformer method in XMLSerializer.java 59 Listing 6-4 The transformPrimitives method in the Application class 61 Listing 6-5 The source document: produced by NSXMLOutputStream before transformation 62 Listing 6-6 The target document: PrimitivesTransformed.xml 62 Listing 6-7 The transformMovieArray method in Application.java 63 Listing 6-8 The MoviesTransformed.xml file 63 Appendix A XML Schema and DTD Files 65 Listing A-1 The woxml.xsd file 65 Listing A-2 The woxml.dtd file 75 6 Preliminary © 2004 Apple Computer, Inc. All Rights Reserved. TABLES, FIGURES, AND LISTINGS Appendix B Code Listings 85 Listing B-1 BinarySerializer.java class 85 Listing B-2 XMLSerializer.java class 89 Listing B-3 SimpleTransformation.xsl file 95 7 Preliminary © 2004 Apple Computer, Inc. All Rights Reserved. TABLES, FIGURES, AND LISTINGS 8 Preliminary © 2004 Apple Computer, Inc. All Rights Reserved. CHAPTER 1 About This Document This document explains how to you can use XML serialization in your applications. Binary serialization is a simple and efficient way of serializing data. To see this appealing format, invoke the cat command on an executable file. Binary is a wonderful format for computers to use, but it's not
Recommended publications
  • Deserialization Vulnerability by Abdelazim Mohammed(@Intx0x80)
    Deserialization vulnerability By Abdelazim Mohammed(@intx0x80) Thanks to: Mazin Ahmed (@mazen160) Asim Jaweesh(@Jaw33sh) 1 | P a g e Table of Contents Serialization (marshaling): ............................................................................................................................ 4 Deserialization (unmarshaling): .................................................................................................................... 4 Programming language support serialization: ............................................................................................... 4 Risk for using serialization: .......................................................................................................................... 5 Serialization in Java ...................................................................................................................................... 6 Deserialization vulnerability in Java: ............................................................................................................ 6 Code flow work........................................................................................................................................... 11 Vulnerability Detection: .............................................................................................................................. 12 CVE: ........................................................................................................................................................... 17 Tools: .........................................................................................................................................................
    [Show full text]
  • Serializing C Intermediate Representations for Efficient And
    Serializing C intermediate representations for efficient and portable parsing Jeffrey A. Meister1, Jeffrey S. Foster2,∗, and Michael Hicks2 1 Department of Computer Science and Engineering, University of California, San Diego, CA 92093, USA 2 Department of Computer Science, University of Maryland, College Park, MD 20742, USA SUMMARY C static analysis tools often use intermediate representations (IRs) that organize program data in a simple, well-structured manner. However, the C parsers that create IRs are slow, and because they are difficult to write, only a few implementations exist, limiting the languages in which a C static analysis can be written. To solve these problems, we investigate two language-independent, on-disk representations of C IRs: one using XML, and the other using an Internet standard binary encoding called XDR. We benchmark the parsing speeds of both options, finding the XML to be about a factor of two slower than parsing C and the XDR over six times faster. Furthermore, we show that the XML files are far too large at 19 times the size of C source code, while XDR is only 2.2 times the C size. We also demonstrate the portability of our XDR system by presenting a C source code querying tool in Ruby. Our solution and the insights we gained from building it will be useful to analysis authors and other clients of C IRs. We have made our software freely available for download at http://www.cs.umd.edu/projects/PL/scil/. key words: C, static analysis, intermediate representations, parsing, XML, XDR 1. Introduction There is significant interest in writing static analysis tools for C programs.
    [Show full text]
  • The Programmer's Guide to Apache Thrift MEAP
    MEAP Edition Manning Early Access Program The Programmer’s Guide to Apache Thrift Version 5 Copyright 2013 Manning Publications For more information on this and other Manning titles go to www.manning.com ©Manning Publications Co. We welcome reader comments about anything in the manuscript - other than typos and other simple mistakes. These will be cleaned up during production of the book by copyeditors and proofreaders. http://www.manning-sandbox.com/forum.jspa?forumID=873 Licensed to Daniel Gavrila <[email protected]> Welcome Hello and welcome to the third MEAP update for The Programmer’s Guide to Apache Thrift. This update adds Chapter 7, Designing and Serializing User Defined Types. This latest chapter is the first of the application layer chapters in Part 2. Chapters 3, 4 and 5 cover transports, error handling and protocols respectively. These chapters describe the foundational elements of Apache Thrift. Chapter 6 describes Apache Thrift IDL in depth, introducing the tools which enable us to describe data types and services in IDL. Chapters 7 through 9 bring these concepts into action, covering the three key applications areas of Apache Thrift in turn: User Defined Types (UDTs), Services and Servers. Chapter 7 introduces Apache Thrift IDL UDTs and provides insight into the critical role played by interface evolution in quality type design. Using IDL to effectively describe cross language types greatly simplifies the transmission of common data structures over messaging systems and other generic communications interfaces. Chapter 7 demonstrates the process of serializing types for use with external interfaces, disk I/O and in combination with Apache Thrift transport layer compression.
    [Show full text]
  • Implementation of a Serializer to Represent PHP Objects in the Extensible Markup Language Lidia N
    World Academy of Science, Engineering and Technology International Journal of Computer and Information Engineering Vol:13, No:7, 2019 Implementation of a Serializer to Represent PHP Objects in the Extensible Markup Language Lidia N. Hernández-Piña, Carlos R. Jaimez-González context of data storage and transmission, serialization is the Abstract—Interoperability in distributed systems is an important process of rendering an object into a state that can be saved feature that refers to the communication of two applications written persistently into a storage medium, such as a file, database, or in different programming languages. This paper presents a serializer a stream to be transmitted through the network. De- and a de-serializer of PHP objects to and from XML, which is an serialization is the opposite process, which puts the serialized independent library written in the PHP programming language. The XML generated by this serializer is independent of the programming version of the object into a live object in memory" [1]. language, and can be used by other existing Web Objects in XML This paper presents a serializer and a de-serializer of PHP (WOX) serializers and de-serializers, which allow interoperability objects to XML, called PHP Web Objects in XML with other object-oriented programming languages. (PHPWOX) [2]. The XML generated by PHPWOX is independent of the programming language, and can be used by Keywords—Interoperability, PHP object serialization, PHP to other existing serializers and de-serializers WOX [3], which XML, web objects in XML, WOX. allow interoperability between applications written in PHP and applications written in the programming languages supported I.
    [Show full text]
  • The Phpserialize Package
    The phpSerialize Package March 9, 2005 Title Serialize R to PHP associative array Version 0.8-01 Author Dieter Menne <[email protected]> Description Serializes R objects for import by PHP into an associative array. Can be used to build interactive web pages with R. Maintainer Dieter Menne<[email protected]> License GPL version 2 or newer R topics documented: phpSerialize . 1 Index 4 phpSerialize R to PHP Serialization Description Serializes R objects for PHP import into an associative array. Main use is for building web pages with R-support. Usage phpSerialize(x, file = NULL, append = FALSE, associative = "1D", simplifyMono=TRUE, phpTestCode = FALSE) phpSerializeAll(include=NULL, exclude=NULL, file = NULL, append = FALSE, associative = "1D", simplifyMono=TRUE, phpTestCode = FALSE) 1 2 phpSerialize Arguments x an object file a file name or a connection, or NULL to return the output as a string. If the connection is not open it will be opened and then closed on exit. append append or overwrite the file? associative a character string of "1D" (default), "2D" or "no". For "1D", only scalars and vectors are serialized as associative arrays which can be retrieved by name, while arrays are exported with numeric indexes. For "2D", arrays are also exported by name. For "no", objects are serialized with numerical indexes only, and factors are serialized as integers. simplifyMono if TRUE (default), unnamed vectors of length 1 are reduced to scalars, which is easier to understand in PHP. For simplyMono=FALSE, these vectors are serialized as arrays with length 1. We need another level of indexing ([1]) in PHP, but we are closer to the way R ticks.
    [Show full text]
  • File IO Serialization
    File IO serialization HOM HVD Streams and Java-I/O Streams in Java File IO serialization java.nio.file Object Streams and serialization Pieter van den Hombergh Serialisation formats Richard van den Ham WARNING Javascript Object Notation Fontys Hogeschool voor Techniek en Logistiek March 13, 2018 HOMHVD/FHTenL File IO serialization March 13, 2018 1/23 File IO Topics serialization HOM HVD Streams and Streams and Java-I/O Java-I/O Streams in Java Streams in Java java.nio.file java.nio.file Object Streams and serialization Serialisation formats WARNING Object Streams and serialization Javascript Object Notation Serialisation formats WARNING Javascript Object Notation HOMHVD/FHTenL File IO serialization March 13, 2018 2/23 File IO Streams in Java serialization HOM HVD Streams and Java-I/O Streams in Java java.nio.file Object Streams and serialization Serialisation formats WARNING Javascript Object Notation Figure: Taken from the Oracle/Sun Java tutorial Read or write information from different sources and types. sources: network, files, devices types: text, picture, sound Streams are FIFOs, uni-directional HOMHVD/FHTenL File IO serialization March 13, 2018 3/23 File IO Two basic stream types serialization HOM Byte Streams HVD java.io.InputStream, java.io.OutputStream Streams and Java-I/O read and write pdf, mp3, raw... Streams in Java java.nio.file Character Streams (16-bit Unicode) Object Streams java.io.Reader, java.io.Writer and serialization simplifies reading and writing characters, character-arrays or Strings Serialisation formats WARNING Javascript
    [Show full text]
  • Pharmaceutical Serialization Track and Trace
    PHARMACEUTICAL SERIALIZATION TRACK & TRACE EASY GUIDE TO COUNTRY- WISE MANDATES External Document © 2018 Infosys Limited External Document © 2018 Infosys Limited Table of Contents Introduction 05 US Federal 06 California 08 Argentina 10 Brazil 12 South Korea 14 India 16 China 18 EU 20 France 22 Turkey 24 References 26 External Document © 2018 Infosys Limited External Document © 2018 Infosys Limited External Document © 2018 Infosys Limited Introduction Pharmaceutical companies have to contend with challenges stemming from supply chain security lapses (resulting in theft, diversion and product recalls), counterfeiting and stringent regulations. In addition to alarming safety concerns, these challenges also impair the health of the industry by adversely impacting profits, brand credibility and research initiatives. With both industry and governments around the world realizing the significance of implementing product serialization, it becomes mandatory for all entities within the supply chain to comply with federal and/or state legislations pertaining to the locations in which they operate. Typically, drug distribution systems consist of entities such as manufacturers, wholesale distributors and pharmacies before products reach the end consumer. Ensuring secure product track and trace capabilities across various touch points throughout the supply chain - through product serialization implementation - is crucial to address the challenges faced by the industry. Apart from providing visibility and full traceability within the supply chain, successful serialization programs will prove to be a key differentiator and a clear competitive advantage for pharmaceutical companies. This guide, compiled by the Legal and Research team at the Infosys Life Sciences Center of Excellence provides a summary of the legal and regulatory framework proposed by countries including Argentina, Brazil, China, EU, France, India, South Korea, Turkey, and USA (Federal and California) to maintain supply chain integrity and ensure patient safety.
    [Show full text]
  • Rprotobuf: Efficient Cross-Language Data Serialization in R
    RProtoBuf: Efficient Cross-Language Data Serialization in R Dirk Eddelbuettel Murray Stokely Jeroen Ooms Debian Project Google, Inc UCLA Abstract Modern data collection and analysis pipelines often involve a sophisticated mix of applications written in general purpose and specialized programming languages. Many formats commonly used to import and export data between different programs or systems, such as CSV or JSON, are verbose, inefficient, not type-safe, or tied to a specific program- ming language. Protocol Buffers are a popular method of serializing structured data between applications|while remaining independent of programming languages or oper- ating systems. They offer a unique combination of features, performance, and maturity that seems particulary well suited for data-driven applications and numerical comput- ing. The RProtoBuf package provides a complete interface to Protocol Buffers from the R environment for statistical computing. This paper outlines the general class of data serialization requirements for statistical computing, describes the implementation of the RProtoBuf package, and illustrates its use with example applications in large-scale data collection pipelines and web services. Keywords: R, Rcpp, Protocol Buffers, serialization, cross-platform. 1. Introduction Modern data collection and analysis pipelines increasingly involve collections of decoupled components in order to better manage software complexity through reusability, modularity, and fault isolation (Wegiel and Krintz 2010). These pipelines are frequently built using dif- ferent programming languages for the different phases of data analysis | collection, cleaning, modeling, analysis, post-processing, and presentation | in order to take advantage of the unique combination of performance, speed of development, and library support offered by different environments and languages. Each stage of such a data analysis pipeline may pro- arXiv:1401.7372v1 [stat.CO] 28 Jan 2014 duce intermediate results that need to be stored in a file, or sent over the network for further processing.
    [Show full text]
  • Compiling Your Own Perl
    APPENDIX A Compiling Your Own Perl Compiling Perl on a Unix-like system is simple. First, obtain the source for Perl from CPAN (dppl6++_l]j*lanh*knc+on_+NA=@IA*dpih). Then input the following sequence of commands: p]nvtrblanh)1*4*4*p]n*cv _`lanh)1*4*4 od?kjbecqna)`ao i]ga i]gapaop oq`ki]gaejop]hh On most Unix systems, this code will result in your lanh being installed into the +qon+ hk_]h+ directory tree. If you want it installed elsewhere—for example, in the local directory in your home directory—then replace od?kjbecqna)`a with the following: od?kjbecqna)`ao)@lnabet9z+hk_]h+ which should enable you to install Perl on your computer without root access. Note that the )`ao flag uses all the default options for compiling Perl. If you know that you want nonstandard configuration, just use the flag )`a instead to be prompted for your requirements. Be aware that the source for Perl 5.10.0 requires a patch to work properly with Catalyst. This is fixed in subsequent versions of Perl 5.10. If you need to test code guaranteed to run on a wide range of systems, you should con- sider using Perl version 5.8.7. Perl versions greater than 5.8.7 contain features that were not available in earlier versions of Perl, so Perl 5.8.7 is feature complete for all versions of Perl that Catalyst will run on (version 5.8.1 and later). Put another way, versions 5.8.8 and later have new features that you can’t rely on in earlier releases.
    [Show full text]
  • Efficient Object Serialization in Java
    Efficient Object Serialization in Java Lukasz Opyrchal and Atul Prakash Department of Electrical Engineering and Computer Science University of Michigan, Ann Arbor, MI 48109-2122, USA E-mail: {lukasz, aprakash}@eecs.umich.edu Abstract* serialization is extensible and customizable [11]. There Object serialization is the ability of an object to write a are many problems that have not been addressed by complete state of itself and of any objects that it current implementation (jdk 1.1.6). One of them has to do references to an output stream, so that it can be recreated with performance and specifically with the size of pickles from the serialized representation at a later time. produced by the system. When serialization is used to Pickling, the process of creating a serialized transfer objects in a distributed application, large pickles representation of objects, has been investigated for many adversely affect the performance because of greater years in the context of many different distributed systems. network latencies for large messages [2]. The standard Sun Microsystems introduced a simple and extendible API algorithm includes some optimization techniques (such as for object serialization in version 1.1 of the Java the referencing mechanism described in Section 3), but Development Kit. Application developers can use this further improvements can be made. standard serialization in their applications, or they can This paper describes improvements to the standard develop custom versions for different user-defined classes. Java serialization algorithm aimed at decreasing pickle Many distributed applications that use standard sizes. The improvements do not change either the serialization to communicate between distributed nodes, serialization semantics or the API, so the new mechanism experience significant degradation in performance due to can transparently replace the old one (without any large sizes of serialized objects.
    [Show full text]
  • JSON-LD 1.1 – a JSON-Based Serialization for Linked Data Gregg Kellogg, Pierre-Antoine Champin, Dave Longley
    JSON-LD 1.1 – A JSON-based Serialization for Linked Data Gregg Kellogg, Pierre-Antoine Champin, Dave Longley To cite this version: Gregg Kellogg, Pierre-Antoine Champin, Dave Longley. JSON-LD 1.1 – A JSON-based Serialization for Linked Data. [Technical Report] W3C. 2019. hal-02141614v2 HAL Id: hal-02141614 https://hal.archives-ouvertes.fr/hal-02141614v2 Submitted on 28 Jan 2020 HAL is a multi-disciplinary open access L’archive ouverte pluridisciplinaire HAL, est archive for the deposit and dissemination of sci- destinée au dépôt et à la diffusion de documents entific research documents, whether they are pub- scientifiques de niveau recherche, publiés ou non, lished or not. The documents may come from émanant des établissements d’enseignement et de teaching and research institutions in France or recherche français ou étrangers, des laboratoires abroad, or from public or private research centers. publics ou privés. https://www.w3.org/TR/json-ld11/ JSON-LD 1.1 A JSON-based Serialization for Linked Data W3C Candidate Recommendation 12 December 2019 This version: https://www.w3.org/TR/2019/CR-json-ld11-20191212/ Latest published version: https://www.w3.org/TR/json-ld11/ Latest editor's draft: https://w3c.github.io/json-ld-syntax/ Test suite: https://w3c.github.io/json-ld-api/tests/ Implementation report: https://w3c.github.io/json-ld-api/reports/ Previous version: https://www.w3.org/TR/2019/WD-json-ld11-20191112/ Latest Recommendation: https://www.w3.org/TR/2014/REC-json-ld-20140116/ Editors: Gregg Kellogg (v1.0 and v1.1) Pierre-Antoine Champin
    [Show full text]
  • Objective-C Language and Gnustep Base Library Programming Manual
    Objective-C Language and GNUstep Base Library Programming Manual Francis Botto (Brainstorm) Richard Frith-Macdonald (Brainstorm) Nicola Pero (Brainstorm) Adrian Robert Copyright c 2001-2004 Free Software Foundation Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided also that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modified versions. i Table of Contents 1 Introduction::::::::::::::::::::::::::::::::::::: 3 1.1 What is Object-Oriented Programming? :::::::::::::::::::::::: 3 1.1.1 Some Basic OO Terminology :::::::::::::::::::::::::::::: 3 1.2 What is Objective-C? :::::::::::::::::::::::::::::::::::::::::: 5 1.3 History :::::::::::::::::::::::::::::::::::::::::::::::::::::::: 5 1.4 What is GNUstep? ::::::::::::::::::::::::::::::::::::::::::::: 6 1.4.1 GNUstep Base Library :::::::::::::::::::::::::::::::::::: 6 1.4.2 GNUstep Make Utility :::::::::::::::::::::::::::::::::::: 7 1.4.3 A Word on the Graphical Environment :::::::::::::::::::: 7 1.4.4 The GNUstep Directory Layout ::::::::::::::::::::::::::: 7 1.5 Building Your First Objective-C Program :::::::::::::::::::::: 8 2 The Objective-C Language :::::::::::::::::::
    [Show full text]