Source: http://www.google.com/patents/US7921358?ie=ISO-8859-1&dq=7,444,563
Timestamp: 2015-02-28 00:43:15
Document Index: 702400525

Matched Legal Cases: ['arts 118', 'arts 120', 'art 120', 'art 118', 'art 120', 'arts 124', 'arts 126', 'arts 128', 'art 120', 'arts 118', 'arts 126', 'art 118', 'art 306', 'art 306', 'arts 310', 'arts 118', 'arts 119', 'arts 118', 'arts 128', 'Application No. 2007']

Patent US7921358 - Automatic package conformance validation - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsSystems and methods for automatic package conformance validation are described. A package is a logical entity that specifies multiple datastreams for use by an application to render pages and resources associated with one or more documents. In one aspect, the systems and methods automatically validate...http://www.google.com/patents/US7921358?utm_source=gb-gplus-sharePatent US7921358 - Automatic package conformance validationAdvanced Patent SearchPublication numberUS7921358 B2Publication typeGrantApplication numberUS 11/467,497Publication dateApr 5, 2011Filing dateAug 25, 2006Priority dateJan 17, 2006Fee statusPaidAlso published asCA2632810A1, CA2632810C, US20070168264, WO2007087122A2, WO2007087122A3Publication number11467497, 467497, US 7921358 B2, US 7921358B2, US-B2-7921358, US7921358 B2, US7921358B2InventorsJustin A Slone, Mariyan D. FransazovOriginal AssigneeMicrosoft CorporationExport CitationBiBTeX, EndNote, RefManPatent Citations (26), Non-Patent Citations (8), Classifications (11), Legal Events (2) External Links: USPTO, USPTO Assignment, EspacenetAutomatic package conformance validation
This application claims priority to U.S. provisional patent application Ser. No. 60/743,136, titled �Package Compliance Validation�, filed on Jan. 17,2006, and hereby incorporated by reference.
FIG. 1 shows an exemplary system 100 for automatic package conformance validation according to one embodiment. System 100 includes a computing device 102. The computing device 102 includes one or more processors 104 coupled to system memory 106. System memory 106 includes one or mote of RAM, ROM, EPROM, NVRAM, EEPROM or any kind of storage device capable of holding the module instructions and data. System memory 106 includes computer executable instructions in the form of computer-program modules in program memory 108, and data in program data 110. In this implementation, for example, program memory 108 includes package conformance-validation module 112 (�validation module 112�) and other program modules 114 such as an operating system, device drivers, a package reader, a markup language parser, an application to utilize/render a data package validated for conformance by validation module 112, and/or so on.
Validation module 112 validates conformance of a package 116 (hereinafter often called a �data package�), including encapsulated package relationships parts 118 (a logical entity identifying other datastreams) and fixed payload parts 120 to respective ones of package and document specifications 122. A fixed payload part 120 is a logical entity encapsulating other datastreams that specify document content, resources, etc. Package(s) 116 may be stored in compressed or uncompressed formats. In this implementation, package and document specifications 122 are respectively based on OPC and XPS. In a different implementation, different package and document specifications 122 are utilized.
As shown in FIG. 1, package 116 includes, for example, a package relationships part 118 (respective package parts) and fixed payload part(s) 120. A fixed payload part 120 includes, for example, the following package parts: document markup parts 124, document relationships parts 126, and document resources parts 128. In one implementation, and for purposes of exemplary description, markup language (or �markup�) used in a package 116 and fixed payload part 120 is XML, although other markup languages could be used. Each of the respective package parts 118 and 124 through 128 represents a respective set of datastreams for use by an application (e.g., a respective application of �other program modules� 114) to render documents and resources specified by a package 116. In this implementation, each respective package part is associated with a name and a content type (MINE). Like Universal Resource Identifiers (URIs), part names are hierarchically divided into segments, e.g. /markup/mypart.xml. Content types of parts are defined in a specially named XML stream. The URI scheme is used to address respective package parts. In this implementation, an exemplary such address is composed of a specially-escaped container URI plus the part name, although other addressing schemes could be used. For example, pack://http:,,www.microsoft.com,mypackage.container/mypart.xml URI refers to a part /mypart.xml within a container http://www.microsoft.com/mypackage.container.
TABLE 1, which is shown immediately below, shows an exemplary package parts relationship declaration, according to one embodiment. In this example, �Target� represents a URI of a referenced part. �ID� uniquely identifies the relationship within the particular relationships part. Type specifies a namespace-like definition of the purpose of the relationship
xmlns=�http://schemas.microsoft.com/metro/2005/02/relationships�>
ID=�A5FFC797514BC�
Type=�http://schemas.microsoft.com/metro/2005/02/rp/printticket�/>
FixedDocumentSequence�Root (a logical entity identifying other datastreams) of the document (block 302 of FIG. 3) FixedDocument�Document XML markup (a logical entity identifying other datastreams) (block 304 of FIG. 3) FixedPage�Page XML markup (a logical entity identifying other datastreams) (block 306) Font�Embedded font (block 308) Image�Embedded image (block 310) Thumbnail�Page thumbnail images PrintTicket�Printer settings for page/document (blocks 312 through 316) Exemplary fixed payload relationships (i.e., document relationships parts 126 of FIG. 1) include, for example, relationships identifying:
FixedRepresentation�Points to a document root (fixedDocumentSequence) RequiredResource�Identifies any image image, font, ICC profile, or remote resource dictionary needed to render a page PrintTicket�In this example, printer settings In the example of FIG. 3, package 116 and fixed payload 120 are organized in a logical hierarchy reflected in the naming convention presented in FIG. 3. It can be appreciated that for different documents (e.g., document not directed for print spooling), different naming conventions can be used. In this implementation, and in addition to the hierarchy of document parts, package 116 optionally contains a thumbnail image (e.g., thumbnail image 318) that an operating system and applications can use as a visually summarized representation of the document 300. This resource is identified by a corresponding relationship identified in package relationships part 118 of FIG. 1.
xmlns=�http://schemas.microsoft.com/metro/2005/02/rp�>
<DocumentReference Source=�/doc1/FixedDoc1.xml�/>
<DocumentReference Source=�/doc2/FixedDoc2.xml�/>
TABLE 3 shows an exemplary XML sequence for a fixed document (�FixedDocument�) part 306 of FIG. 3, according to an embodiment. Each FixedDocument part 306 is the root of an individual set of one or more fixed page (�FixedPage�) parts 310, which include all markup used to render a single page.
TABLE 3 <FixedDocument xmlns=�http://schemas.microsoft.com/metro/2005/02/rp�> <PageContent Source=�/doc1/FixedPage1.xml�/> <PageContent Source=�/doc1/FixedPage2.xml�/> </FixedDocument> Exemplary Conformance Checking
Referring to FIGS. 1 through 3, to validate conformance of a package 116 in view of a package specification 122, for example, validation module 112 validates package relationship markup parts 118 and package resource parts 119, processes identified package relationships to determine structure of package 116, and validates identified non-markup resources such as digital signatures, or properties, thumbnails, etc. In another example, to validate a fixed payload 120 in view of a document specification 122, validation module 112 begins conformance validation operations from an identified fixed representation relationship that identifies a fixed payload 120. In this implementation, package relationship parts 118 specify the fixed representation relationship. Fixed payload 120 includes fixed document sequence 302 (i.e., a �FixedDocumentSequence� tag element or equivalents thereof). At this point, validation module 112 validates markup of the fixed document sequence 304, and follows one or more document references (e.g., �<DocumentReference>�) to one or more respective fixed document(s) 304 (a fixed document 304 is also represented in this description with a �FixedDocument� element).
Validation module 112, for each identified fixed document 304, validates the markup of the fixed document 304, and then and follows each of one or more page content references (e.g., identified with a �<PageContent>� markup tag) to validate markup of each fixed page 306. For each fixed page 306, validation module 112 discovers any associated resource parts 128 such as fonts 308 and/or images 310 and performs resource validation operations. That is, when there is more than one document reference element (�<DocumentReference>�) in fixed document sequence markup, validation model 112 validates an entire fixed document 304 and all of its associated fixed pages 306 (including any resources associated with each fixed page 306), before continuing to validate a second document reference (i.e., fixed document 304), etc.
xmlns=�http://schemas.openxmlformats.org/package/2006/relationships�>
<Relationship Type=�http://schemas.microsoft.com/xps/2005/06/
required-resource� Target=�../../../Resources/Fonts/arial.ttf� Id=�Rfont� />
Validation module 112 validates conformance of identified non-markup data based on content type (e.g., font image, digital certificate, etc.). Package specification 122 includes definitions for non-markup references such as thumbnails (images), digital signatures, package properties (metadata), etc. In one implementation, validating module 112 uses WPF APIs to validate and images by determining whether the image can be successfully decoded. In another example, validating module 112 validates conformance of a font resource in view of identified incoming inline markup reference(s)�reference(s) specified in the markup of the FixedPage part contained in 124. When processing a font resource, first the font is decoded using, for example, known WPF APIs, then licensing intent of the font is inspected to ensure that the font has been embedded in the document in accordance with any and all licensing intents (e.g., licensing intents requiring a font to be embedded a certain way, a font not be embedded at all, etc.).
FIGS. 4 through 6 show respective aspects of an exemplary conformance validation log, according to one embodiment. Such a conformance validation log is also shown as �conformance validation log 134� of FIG. 1 Referring to FIG. 4, section 402 shows log activity during validation module 112 set-up/initialization operations, according to one embodiment. In this implementation, validation module 112 implements set-up/initialization operations by processing any command line parameters, and searching for and loading package and document specifications 122 (shown in FIG. 4 as �schemas�). In this example, no specific package and/or document schemas were specified by a user (e.g., via command line parameters). In this example, validation module 112 loads default package and/or document specifications 122 (schemas).
The default logger is �console�.
The default log file is �isXPSLog.txt�.
in the log file �prefix_#to#.log files�
: the default device is �$LogFile:file=isXPSLog.wtl,WriteMode=append�.
FIG. 7 shows an exemplary automatic package-conformance validation procedure 700, according to an embodiment. For the purposes of exemplary illustration and description, the operations of procedure 700 are described with respect to aspects of one or more of FIGS. 1 through 6. Referring to FIG. 7, operations of block 702 receive a request to validate conformance of a package 116 encapsulating a fixed payload 120 of document content. In one implementation, package conformance-validation module 112 receives a request from a user of computing device 102 or remote computing device 138 to validate conformance of the package 116. In one implementation, the request includes a number of command line parameters specifying one or more of input/output and operational criteria of the automatic package-conformance validation operations. For purposes of exemplary illustration, such a request is shown as a respective portion of �other program data� 130 of FIG. 1.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS6397259 *May 29, 1998May 28, 2002Palm, Inc.Method, system and apparatus for packet minimized communicationsUS6763343Sep 20, 1999Jul 13, 2004David M. BrookePreventing duplication of the data in reference resource for XML page generationUS7359902 *Apr 30, 2004Apr 15, 2008Microsoft CorporationMethod and apparatus for maintaining relationships between parts in a packageUS7370100 *Dec 10, 2003May 6, 2008Foundry Networks, Inc.Method and apparatus for load balancing based on packet header contentUS7536681 *Mar 22, 2005May 19, 2009Intel CorporationProcessing secure metadata at wire speedUS7587487 *Dec 10, 2003Sep 8, 2009Foundry Networks, Inc.Method and apparatus for load balancing based on XML content in a packetUS20020087571Oct 19, 2001Jul 4, 2002Kevin StapelSystem and method for dynamic generation of structured documentsUS20030154444Aug 15, 2002Aug 14, 2003International Business Machines CorporationGenerating automata for validating XML documents, and validating XML documentsUS20030163778Feb 28, 2002Aug 28, 2003Michelle ShoresSystem and method for improved validation for claims complianceUS20040073870Apr 16, 2003Apr 15, 2004You-Chin FuhAnnotated automaton encoding of XML schema for high performance schema validationUS20040193627Feb 17, 2004Sep 30, 2004Fujitsu LimitedDevices for interpreting and retrieving XML documents, methods of interpreting and retrieving XML documents, and computer productUS20040205583Jun 27, 2002Oct 14, 2004Microsoft CorporationSystem and method for supporting non-native XML in native XML of a word-processor documentUS20050028084 *Jul 27, 2004Feb 3, 2005Alan DziejmaSystem and method for a form validation engineUS20050066015Sep 9, 2003Mar 24, 2005Dandekar Shree A.Method and system for automated validation, scripting, dissemination and installation of softwareUS20050093770 *Oct 28, 2004May 5, 2005De Bonet Jeremy S.System and method for a data format for command encapsulationUS20050114148 *Nov 20, 2003May 26, 2005International Business Machines CorporationSystem, apparatus and method of automatically verifying conformance of documents to standardized specificationsUS20050160108Jan 16, 2004Jul 21, 2005Charlet Kyle J.Apparatus, system, and method for passing data between an extensible markup language document and a hierarchical databaseUS20050177543Feb 10, 2004Aug 11, 2005Chen Yao-Ching S.Efficient XML schema validation of XML fragments using annotated automaton encodingUS20050251740Apr 30, 2004Nov 10, 2005Microsoft CorporationMethods and systems for building packages that contain pre-paginated documentsUS20050262115Apr 20, 2005Nov 24, 2005Jingkun HuExtensible constraint markup languageUS20050273701 *Apr 30, 2004Dec 8, 2005Emerson Daniel FDocument mark up methods and systemsUS20050278272Apr 30, 2004Dec 15, 2005Microsoft CorporationMethod and apparatus for maintaining relationships between parts in a packageUS20060090195 *Oct 22, 2004Apr 27, 2006Microsoft CorporationSecure remote configuration of targeted devices using a standard message transport protocolUS20060129650 *Dec 10, 2004Jun 15, 2006Ricky HoGuaranteed delivery of application layer messages by a network elementUS20070121585 *Nov 28, 2005May 31, 2007Intel CorporationStreaming file transfer apparatus, systems, and methodsWO2001025024A1Sep 28, 2000Apr 12, 2001Kocis IvanDocument, method of its preparation and apparatus for authenticating it* Cited by examinerNon-Patent CitationsReference1 *"UGS and Microsoft to Align Presentation XML Formats to Expand Use of 3-D and Product Life-Cycle Management Information", Sep. 16, 2005, http://www.noticias.info/Archivo/2005/200509/2005/0916/20050916-99166.shtm, pp. 3.2 *"UGS and Microsoft to Align Presentation XML Formats to Expand Use of 3-D and Product Life-Cycle Management Information", Sep. 16, 2005, http://www.noticias.info/Archivo/2005/200509/2005/0916/20050916�99166.shtm, pp. 3.3Barbosa, et al., "Efficient Incremental Validation of XML Documents", Available at http://www.cs.toronto.edu/DB/WebPage/files/icde04.pdf, using references dated from 1993-2003.4 *Dan Richman, "Code war heats up between Microsoft and Adobe", Aug. 8, 2005, http://www.seattlepi.com/business/235686-adobe08.html, pp. 4.5 *Dan Richman, "Code war heats up between Microsoft and Adobe", Aug. 8, 2005, http://www.seattlepi.com/business/235686�adobe08.html, pp. 4.6Eppler, "Universal Data Exchange Protocol based on OPC XML", Available at http://www.fuzzy.fzk.de/eppler/pdf/surikEppler.pdf, using references dated from 1987-2003.7PCT Search Report for Application No. 2007-00011, mailed on Jun. 22, 2007 pp. 8.8XPS XML Paprer Specification: Overview, Available at http://www.microsoft.com/whdc/xps/default.mspx, 2006.* Cited by examinerClassifications U.S. Classification715/237, 709/232, 715/234International ClassificationG06F15/16, G06F17/20, G06F17/27, G06F17/00Cooperative ClassificationG06Q10/087, G06Q10/10European ClassificationG06Q10/10, G06Q10/087Legal EventsDateCodeEventDescriptionSep 24, 2014FPAYFee paymentYear of fee payment: 4Sep 25, 2006ASAssignmentOwner name: MICROSOFT CORPORATION, WASHINGTONFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SLONE, JUSTIN A.;FRANSAZOV, MARIYAN D.;REEL/FRAME:018309/0762Effective date: 20060925RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services