U.S. patent application number 11/072659 was filed with the patent office on 2006-03-30 for method and apparatus for utilizing an extensible markup language schema to define document parts for use in an electronic document.
This patent application is currently assigned to Microsoft Corporation. Invention is credited to Eric D. Bailey, Roberto C. Taboada.
Application Number | 20060069983 11/072659 |
Document ID | / |
Family ID | 35564076 |
Filed Date | 2006-03-30 |
United States Patent
Application |
20060069983 |
Kind Code |
A1 |
Bailey; Eric D. ; et
al. |
March 30, 2006 |
Method and apparatus for utilizing an extensible markup language
schema to define document parts for use in an electronic
document
Abstract
A method and apparatus are provided for utilizing an extensible
markup language schema to define document parts for use in an
electronic document. The method includes providing a glossary
document accessible by one or more word processing application
programs. The glossary document includes schema elements for
defining one or more document parts for insertion in an electronic
document. The method further includes receiving, in a properties
element, properties associated with a document part. Each property
defines the document part for use in the electronic document. The
method further includes receiving, in a content element, content to
be included in the document part.
Inventors: |
Bailey; Eric D.; (Redmond,
WA) ; Taboada; Roberto C.; (Duvall, WA) |
Correspondence
Address: |
MERCHANT & GOULD (MICROSOFT)
P.O. BOX 2903
MINNEAPOLIS
MN
55402-0903
US
|
Assignee: |
Microsoft Corporation
Redmond
WA
|
Family ID: |
35564076 |
Appl. No.: |
11/072659 |
Filed: |
March 4, 2005 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10955622 |
Sep 30, 2004 |
|
|
|
11072659 |
Mar 4, 2005 |
|
|
|
Current U.S.
Class: |
715/201 ;
715/234; 715/256 |
Current CPC
Class: |
G06F 40/143 20200101;
G06F 40/154 20200101; G06F 40/131 20200101 |
Class at
Publication: |
715/501.1 ;
715/513 |
International
Class: |
G06F 17/24 20060101
G06F017/24 |
Claims
1. A method for utilizing an extensible markup language schema to
define document parts for use in an electronic document,
comprising: (a) providing a glossary document accessible by one or
more word processing application programs, the glossary document
comprising a plurality of schema elements for defining one or more
document parts; (b) receiving, in a properties element, a plurality
of properties associated with a document part, wherein the
plurality of properties define the document part for use in the
electronic document; (c) receiving, in a content element, content
to be included in the document part; and (d) repeating steps
(b)-(c) for each document part to be defined.
2. The method of claim 1, wherein the properties element comprises
a plurality of child elements associated with the document part and
wherein receiving properties associated with the document part
comprises: receiving in a name element, a name to be associated
with the document part; receiving in a description element, a
description of the document part; receiving in a style element,
text describing a style for displaying the content to be included
in the document part; and receiving in an InsertOptions element, a
value identifying allowable content for insertion in the document
part.
3. The method of claim 2, wherein receiving in an InsertOptions
element, a value identifying allowable content comprises receiving
a value identifying a paragraph.
4. The method of claim 2, wherein receiving in an InsertOptions
element, a value identifying allowable content comprises receiving
a value identifying a page.
5. The method of claim 2, wherein receiving in an InsertOptions
element, a value identifying allowable content comprises receiving
a value identifying a section.
6. The method of claim 1 further comprising receiving, in a types
element, one or more types of document parts for insertion in the
electronic document.
7. The method of claim 1 further comprising receiving, in a
categories element, one or more categories of document parts for
each document part type.
8. The method of claim 6 further comprising receiving, in the types
element, a plurality of properties associated with the one or more
types of document parts.
9. The method of claim 7 further comprising receiving, in the
categories element, a plurality of properties associated with the
one or more categories of document parts.
10. The method of claim 1 further comprising receiving in a global
format element in the schema file, a format for defining a global
format to be applied to each document part inserted in the
electronic document.
11. A computer-readable medium having computer-executable
instructions stored thereon which, when executed by a computer,
will cause the computer to perform a method for utilizing an
extensible markup language schema to define document parts for use
in an electronic document, the method comprising: (a) providing a
glossary document accessible by one or more word processing
application programs, the glossary document comprising a plurality
of schema elements for defining one or more document parts; (b)
receiving, in a properties element, a plurality of properties
associated with a document part, wherein the plurality of
properties define the document part for use in the electronic
document; (c) receiving, in a content element, content to be
included in the document part; and (d) repeating steps (b)-(c) for
each document part to be defined.
12. The computer-readable medium of claim 11, wherein the
properties element comprises a plurality of child elements
associated with the document part and wherein receiving properties
associated with the document part comprises: receiving in a name
element, a name to be associated with the document part; receiving
in a description element, a description of the document part;
receiving in a style element, text describing a style for
displaying the content to be included in the document part; and
receiving in an InsertOptions element, a value identifying
allowable content for insertion in the document part.
13. The computer-readable medium of claim 12, wherein receiving in
an InsertOptions element, a value identifying allowable content
comprises receiving a value identifying a paragraph.
14. The computer-readable medium of claim 12, wherein receiving in
an InsertOptions element, a value identifying allowable content
comprises receiving a value identifying a page.
15. The computer-readable medium of claim 12, wherein receiving in
an InsertOptions element, a value identifying allowable content
comprises receiving a value identifying a section.
16. The computer-readable medium of claim 11 further comprising
receiving, in a types element, one or more types of document parts
for insertion in the electronic document.
17. The computer-readable medium of claim 11 further comprising
receiving, in a categories element, one or more categories of
document parts for each document part type.
18. The computer-readable medium of claim 16 further comprising
receiving, in the types element, a plurality of properties
associated with the one or more types of document parts.
19. The computer-readable medium of claim 17 further comprising
receiving, in the categories element, a plurality of properties
associated with the one or more categories of document parts.
20. The computer-readable medium of claim 11 further comprising
receiving in a global format element in the schema file, a format
for defining a global format to be applied to each document part
inserted in the electronic document.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This patent application is a continuation-in-part
application of U.S. patent application Ser. No. 10/955,622 entitled
"Method, System, And Computer-Readable Medium For Creating,
Inserting, And Reusing Complex Document Parts In An Electronic
Document," the disclosure of which is expressly incorporated
herein, in its entirety, by reference.
BACKGROUND OF THE INVENTION
[0002] Modern word processors enable a user to readily create
electronic documents. Many modern word processors include templates
to facilitate the insertion of "document parts" which are typical
structural elements found in a variety of documents. These typical
structural elements include such features as cover pages, headers
and footers, and the like. A user of a word processing application
program typically selects a desired document part from a template
of similarly styled parts created by a template author and then
inserts the selected document part in the document. Unfortunately,
the creation and insertion of document parts in modern word
processors presents a number of drawbacks to both the template
author as well as the end user.
[0003] One drawback associated with the creation of document part
templates for use in modern word processors is that the template
author generally must undergo the time consuming task of creating
each document part from scratch utilizing various graphical
software tools to design and format each document part. One
drawback associated with the insertion of document parts in a
document by an end user is that the end user must depend on
template authors to design suitable document parts for insertion
(i.e., the typical end user lacks the design skill require to
design or modify existing document parts). Another drawback
associated with the insertion of document parts by an end user is
that the end user must typically perform a series of steps so that
the document part will fit the size and layout of the document in
which it is inserted. For instance, to insert a cover page a user
may perform one or more of the following time-consuming steps: 1.
Insert a page break at the top of the document; 2. Center the test
vertically in the page by using empty paragraph markers so that the
title is displayed correctly; 3. Increase the font size of the
title; 4. Add empty space to push text to the bottom of the page
where the author's name and date will be displayed; 5. Right align
the text and make it smaller.
[0004] It is with respect to these considerations and others that
the various embodiments of the present invention have been
made.
BRIEF SUMMARY OF THE INVENTION
[0005] In accordance with the present invention, the above and
other problems are solved by a method and apparatus for utilizing
an extensible markup language schema to define document parts for
use in an electronic document. According to one aspect of the
invention, a method includes providing a glossary document
accessible by one or more word processing application programs. The
glossary document includes schema elements for defining one or more
document parts for insertion in an electronic document. The method
further includes receiving, in a properties element, properties
associated with a document part. Each property defines the document
part for use in the electronic document. The method further
includes receiving, in a content element, content to be included in
the document part.
[0006] The properties element includes one or more child elements
associated with the document part. These child elements include a
name element for providing a name to be associated with the
document part, a description element for providing a description of
the document part, a style element for providing text describing a
style for displaying the content to be included in the document
part, and an InsertOptions element for providing a value
identifying allowable content for insertion in the document part.
The allowable content for insertion in a document part may include
a paragraph, a page, or a section.
[0007] The schema may include a types element for identifying one
or more types of document parts which may be inserted in the
electronic document. The schema may also include a categories
element for identifying one or more categories of document parts.
The schema may also include a global format element for defining a
global format to be applied to each document part inserted in the
electronic document.
[0008] The invention may be implemented as a computer process, a
computing system, or as an article of manufacture such as a
computer program product or computer readable media. The computer
program product may be a computer storage media readable by a
computer system and encoding a computer program of instructions for
executing a computer process. The computer program product may also
be a propagated signal on a carrier readable by a computing system
and encoding a computer program of instructions for executing a
computer process.
[0009] These and various other features, as well as advantages,
which characterize the present invention, will be apparent from a
reading of the following detailed description and a review of the
associated drawings.
BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
[0010] FIG. 1 is a computer system architecture diagram
illustrating a computer system utilized in and provided by the
various embodiments of the invention;
[0011] FIG. 2 is a diagram of a schema structure including elements
which may be utilized to manage document parts for use in an
electronic document, according to the various embodiments of the
invention; and
[0012] FIG. 3 is an illustrative routine for utilizing the schema
structure of FIG. 2 to manage document parts for use in an
electronic document, according to an illustrative embodiment of the
invention.
DETAILED DESCRIPTION OF THE INVENTION
[0013] Referring now to the drawings, in which like numerals
represent like elements, various aspects of the present invention
will be described. In particular, FIG. 1 and the corresponding
discussion are intended to provide a brief, general description of
a suitable computing environment in which embodiments of the
invention may be implemented. While the invention will be described
in the general context of program modules that execute in
conjunction with program modules that run on an operating system on
a personal computer, those skilled in the art will recognize that
the invention may also be implemented in combination with other
types of computer systems and program modules.
[0014] Generally, program modules include routines, programs,
components, data structures, and other types of structures that
perform particular tasks or implement particular abstract data
types. Moreover, those skilled in the art will appreciate that the
invention may be practiced with other computer system
configurations, including hand-held devices, multiprocessor
systems, microprocessor-based or programmable consumer electronics,
minicomputers, mainframe computers, and the like. The invention may
also be practiced in distributed computing environments where tasks
are performed by remote processing devices that are linked through
a communications network. In a distributed computing environment,
program modules may be located in both local and remote memory
storage devices.
[0015] Referring now to FIG. 1, an illustrative computer
architecture for a computer 2 utilized in the various embodiments
of the invention will be described. The computer architecture shown
in FIG. 1 illustrates a conventional desktop or laptop computer,
including a central processing unit 5 ("CPU"), a system memory 7,
including a random access memory 9 ("RAM") and a read-only memory
("ROM") 11, and a system bus 12 that couples the memory to the CPU
5. A basic input/output system containing the basic routines that
help to transfer information between elements within the computer,
such as during startup, is stored in the ROM 11. The computer 2
further includes a mass storage device 14 for storing an operating
system 16, application programs, and other program modules, which
will be described in greater detail below.
[0016] The mass storage device 14 is connected to the CPU 5 through
a mass storage controller (not shown) connected to the bus 12. The
mass storage device 14 and its associated computer-readable media
provide non-volatile storage for the computer 2. Although the
description of computer-readable media contained herein refers to a
mass storage device, such as a hard disk or CD-ROM drive, it should
be appreciated by those skilled in the art that computer-readable
media can be any available media that can be accessed by the
computer 2.
[0017] By way of example, and not limitation, computer-readable
media may comprise computer storage media and communication media.
Computer storage media includes volatile and non-volatile,
removable and non-removable media implemented in any method or
technology for storage of information such as computer-readable
instructions, data structures, program modules or other data.
Computer storage media includes, but is not limited to, RAM, ROM,
EPROM, EEPROM, flash memory or other solid state memory technology,
CD-ROM, digital versatile disks ("DVD"), or other optical storage,
magnetic cassettes, magnetic tape, magnetic disk storage or other
magnetic storage devices, or any other medium which can be used to
store the desired information and which can be accessed by the
computer 2.
[0018] According to various embodiments of the invention, the
computer 2 may operate in a networked environment using logical
connections to remote computers through a network 18, such as the
Internet. The computer 2 may connect to the network 18 through a
network interface unit 20 connected to the bus 12. It should be
appreciated that the network interface unit 20 may also be utilized
to connect to other types of networks and remote computer systems.
The computer 2 may also include an input/output controller 22 for
receiving and processing input from a number of other devices,
including a keyboard, mouse, or electronic stylus (not shown in
FIG. 1). Similarly, an input/output controller 22 may provide
output to a display screen, a printer, or other type of output
device.
[0019] As mentioned briefly above, a number of program modules and
data files may be stored in the mass storage device 14 and RAM 9 of
the computer 2, including an operating system 16 suitable for
controlling the operation of a networked personal computer, such as
the WINDOWS XP operating system from MICROSOFT CORPORATION of
Redmond, Wash. The mass storage device 14 and RAM 9 may also store
one or more program modules. In particular, the mass storage device
14 and the RAM 9 may store a word processing application program
10. As known to those skilled in the art, the word processing
application program 10 is operative to provide functionality for
creating and editing electronic documents, such as document 24.
According to one embodiment of the invention, the word processing
application program 10 comprises the WORD word processing
application program from MICROSOFT CORPORATION. It should be
appreciated, however, that word processing application programs
from other manufacturers may be utilized to embody the various
aspects of the present invention. It should further be appreciated
that the various aspects of the present invention are not limited
to word processing application programs but may also utilize other
application programs which are capable of processing text.
[0020] In conjunction with the editing of a word processing
document, the word processing application program 10 provides
functionality for allowing a user to create, insert, and reuse
"document parts" into various locations in the document 24. As
defined herein, document parts are preformatted structural elements
or layouts which add structure to documents including, but not
limited to, the following types and categories: cover pages,
mathematical equations, indexes and tables (e.g., Table of
Contents, Table of Figures, and Table of Authorities), page headers
and footers, pages and sections (e.g., blank pages and two-column
pages), personal contact information (e.g., name and address
information), images, textboxes, AutoText, and watermarks. The
document parts utilized by the word processing application program
40 may be stored in a glossary document 28 in an extensible markup
language ("XML") format. As is understood by those skilled in the
art, XML is a standard format for communicating data. In the XML
data format, a schema is used to provide XML data with a set of
grammatical and data type rules governing the types and structure
of data that may be communicated.
[0021] It will be appreciated that in addition to the categories
discussed above, the glossary document 28 may also be used to
create document parts and modify existing document parts. It will
be appreciated that the document parts discussed above may also
belong to a template designed by a professional template designer
including customized document parts for use in an organization. The
structure of the glossary document 28 will be discussed in greater
detail with respect to FIG. 2, below.
[0022] Referring now to FIG. 2, a structure of an XML schema 200
used in the glossary document 28 will now be described. The XML
schema 200 includes a glossaryDocument element 202. The
glossaryDocument element 202 serves as a container document for all
document parts in the glossary document and includes the child
elements DocumentProperties 204, fonts 206, lists 208, styles 210,
docPr (i.e., document properties) 212, types 214, and
dataBoundXmlDoms 248. Each of these child elements will be
described in greater detail below.
[0023] The DocumentProperties element 204 contains all of the
properties used by documents created in the word processing
application program 10. The fonts element 206 contains all of the
fonts used by all of the document parts in the glossary document
28. The lists element 208 contains all of the lists used by all of
the document parts in the glossary document 28. The styles element
210 contains all of the styles used by all of the document parts in
the glossary document 28. The docPr element 212 contains the
properties for the glossary document 28. The types element 214
contains all document parts types along with their respective
categories and parts in the glossary document 28 or in a document
parts template. For instance, the types element 214 may contain
document part types including, but not limited to: Cover Pages,
Headers (e.g., Page Numbers), Footers (e.g., Page Numbers), Letter
AutoText, General AutoText, Personal Information, Tables,
Textboxes, and Equations.
[0024] The types element 214 also includes a type element 216 which
is a container for one type of document part. For instance, the
type element 216 for Cover Pages may include cover page document
parts such as academic cover pages, basic cover pages, etc. The
type element 216 includes a name element 218 which contains the
name for the type element 216. The name element 218 includes the
attribute "val" for identifying the document part type. An
illustrative syntax for the name element 218 is:
[0025] <name val="Cover Pages"/>. If the document part type
is a "built-in" type (i.e., a default document part type stored in
the word processing application program 10), the name element 218
will display the default document part type name regardless of the
name stored in the glossary document 28. The type element 216 also
includes an id element 220 which contains the id of a built-in
document part type. The id element 220 includes the attribute "val"
for displaying the id for a document part type. An illustrative
syntax for the id element 220 is: <id
val="{1B748C4B-8173-4380-8470-DAD7035CEFA8}"/>. The type element
216 also includes a categories element 222 which contains all
document parts categories under the type, with their respective
parts. For instance, the categories element 222 may contain a
number of categories for the Letter AutoText type including, but
not limited to: Attention Line, Closing, Mailing Instructions,
Reference Line, Salutation, Subject Line, and Address
Placeholders.
[0026] The categories element 222 also includes a category element
224 which is a container for one category of document part. The
category element 224 includes a name element 226 which contains the
name for the category element 224. The name element 226 includes
the attribute "val" for identifying the category. If the document
part type is a "built-in" category (i.e., a default document part
category stored in the word processing application program 10), the
name element 218 will display the default document part category
name regardless of the name stored in the glossary document 28. The
category element 224 also includes an id element 228 which contains
the id of a built-in document part category. The id element 228
includes the attribute "val" for displaying the id for a document
part category.
[0027] The category element 222 also includes a docParts element
230 which contains all of the document parts under a category. The
docParts element 230 may also serve as a container for all of the
document parts in a template. The docParts element 230 includes a
docPart element 232 which contains a single document part. The
docPart element 232 includes a docPartPr element 234 which is a
container for all of the properties for the document part and a
docPartBody element 246 which is a container for the content of the
document part itself. The docPartPr element 234 includes several
child elements which will be described in detail below.
[0028] The docPartPr element 234 includes an id element 236 for the
document part and a name element 238 which contains the name for
the docPart element 232. The name element 238 includes the
attribute "val" for identifying the document part. An illustrative
syntax for the name element 238 is: <name val="Cover Page
1"/>. The docPartPr element 234 also includes a description
element 240 for containing a description of the document part. The
description element 240 includes the attribute "val" for describing
the document part. An illustrative syntax for the description
element 240 is: <description val="Cover with centered title and
name"/>. The docPartPr element 234 also includes a pStyle
element 242 which contains the style of the document part. The
pStyle element 242 includes the attribute "val" for identifying the
style of the document part. An illustrative syntax for the pStyle
element 242 is: <pStyle val="Title"/>. The docPartPr element
234 also includes an insertOptions element 244 which contains
insertion options for the document part. The insertion options
include allowing only content, paragraphs, pages, or sections to be
inserted in the document part. An illustrative syntax for the
insertOptions element 244 is:
<insertOptions>content</insertOptions>.
[0029] Referring now to FIG. 3, an illustrative routine 300 will be
described illustrating a process for utilizing the XML schema in
the glossary document 28 to define document parts for use in an
electronic document. It should be appreciated that although the
embodiments of the invention described herein are presented in the
context of the word processing application program 10, the
invention may be utilized in other types of application programs
that support text processing.
[0030] When reading the discussion of the routines presented
herein, it should be appreciated that the logical operations of
various embodiments of the present invention are implemented (1) as
a sequence of computer implemented acts or program modules running
on a computing system and/or (2) as interconnected machine logic
circuits or circuit modules within the computing system. The
implementation is a matter of choice dependent on the performance
requirements of the computing system implementing the invention.
Accordingly, the logical operations illustrated in FIG. 3, and
making up the embodiments of the present invention described herein
are referred to variously as operations, structural devices, acts
or modules. It will be recognized by one skilled in the art that
these operations, structural devices, acts and modules may be
implemented in software, in firmware, in special purpose digital
logic, and any combination thereof without deviating from the
spirit and scope of the present invention as recited within the
claims set forth herein.
[0031] Referring now to FIG. 3, the routine 300 begins at operation
310, wherein a user opens the glossary document 28 to access the
schema containing the document part elements discussed above in
FIG. 2. In particular, the glossary document 28 may be opened in
the word processing application program 10 view and edit the schema
elements corresponding to document parts. It will be appreciated
that in alternative embodiment of the invention, the schema or
portions thereof may be obtained from a third party source and
opened using a conventional text editor. In this manner, document
parts may be edited and/or created without having to load the word
processing application program 10.
[0032] The routine 300 continues from operation 310 at operation
320 where the global formatting element in the schema receives
formatting for all of the document parts to be defined. For
instance, a user may assign a font to the fonts element 206 so that
a consistent font is applied to each document part defined in the
schema. The routine 300 continues from operation 320 at operation
330 where the types element 214 receives one or more document types
to be defined in the schema. In particular, a user may enter the
types (e.g., Cover Pages, Headers, Footers, etc.) for each document
part to be defined.
[0033] The routine 300 continues from operation 330 at operation
340 where the categories element 222 receives one or more
categories for the document part types defined at operation 330. In
particular, the categories element 222 allows a user to assign
document types to categories. For instance, a user may assign a
"Date and Time" category to the General AutoText document type.
[0034] The routine 300 continues from operation 340 at operation
350 where the DocPartPr element 234 receives document part
properties for a document part. In particular a user defines a
single document part by navigating to the DocPartPr element 234 and
entering user values in the name element 238 to name the document
part, the description element 240 to describe the document part,
the pStyle element 242 to assign a style to the document part, and
the insertOptions element 244 to define the type of content which
may be inserted into the document part. The routine 300 continues
from operation 350 at operation 360 where the docPartBody element
246 receives content (e.g., text) for the defined document part. In
particular, the user may enter the content for the document part in
the docPartBody element 246.
[0035] The routine 300 continues from operation 360 at operation
370 where the user decides if there are more document parts to be
defined in the schema. If there are more document parts to be
defined, the routine 300 returns to operation 350. If there are no
more document parts to be defined, then the routine 300 then
ends.
[0036] Based on the foregoing, it should be appreciated that the
various embodiments of the invention include a method and apparatus
for utilizing an extensible markup language schema to define
document parts for use in an electronic document. It will be
appreciated that by using the schema disclosed herein has a number
of advantages over a user interface for defining document parts in
an electronic document. One advantage is that the schema allows a
user a more flexible way to define document parts without using the
user interface. Another advantage is that utilization of the schema
also enables a user to more efficiently add document parts to a
collection or to create multiple templates by simply opening a file
and inserting the appropriate XML directly into a glossary
document.
[0037] The above specification, examples and data provide a
complete description of the manufacture and use of the composition
of the invention. Since many embodiments of the invention can be
made without departing from the spirit and scope of the invention,
the invention resides in the claims hereinafter appended.
* * * * *