[go: nahoru, domu]

US20040254953A1 - Schema framework and a method and apparatus for normalizing schema - Google Patents

Schema framework and a method and apparatus for normalizing schema Download PDF

Info

Publication number
US20040254953A1
US20040254953A1 US10/865,519 US86551904A US2004254953A1 US 20040254953 A1 US20040254953 A1 US 20040254953A1 US 86551904 A US86551904 A US 86551904A US 2004254953 A1 US2004254953 A1 US 2004254953A1
Authority
US
United States
Prior art keywords
schema
namespace
document
user
identifies
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
US10/865,519
Other versions
US7366729B2 (en
Inventor
Winchel Vincent
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
WTVIII Inc
Original Assignee
WTVIII Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by WTVIII Inc filed Critical WTVIII Inc
Priority to US10/865,519 priority Critical patent/US7366729B2/en
Assigned to WTVIII, INC. reassignment WTVIII, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: VINCENT III, WINCHEL TODD
Publication of US20040254953A1 publication Critical patent/US20040254953A1/en
Priority to US11/930,615 priority patent/US20080059518A1/en
Priority to US11/930,569 priority patent/US8688747B2/en
Application granted granted Critical
Publication of US7366729B2 publication Critical patent/US7366729B2/en
Priority to US12/797,584 priority patent/US20100251097A1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04812Interaction techniques based on cursor appearance or behaviour, e.g. being affected by the presence of displayed objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/174Form filling; Merging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/197Version control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/226Validation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Definitions

  • the present invention relates generally to mark up language schema, and more particularly, to a schema framework and a method and apparatus for normalizing schema to ensure that they conform to the framework.
  • Extensible Markup Language is specification developed by the World Wide Web Consortium (“WC3”). XML has become increasingly more important in the exchange of data and documents (“XML documents”) on the Web and elsewhere. XML allows designers to create their own data and document formats (“formats”). XML formats are customized tags, enabling the definition, transmission, validation, and interpretation of data between applications and between organizations. Schemas define XML formats.
  • the W3C, OASIS, and other organizations have published specifications for creating schemas (e.g., the W3C's XML DTDs and XML Schema, and OASIS' Relax NG). There is, however, no specification that describes how designers can manage schemas on a large scale and within a standard schema framework.
  • the schema framework of the present invention is a set of rules and best practices that a user follows when creating schema in accordance with the present invention.
  • schema are produced that can be used, reused, and managed in a distributed computing environment, thus reducing the time and effort associated with creating and using schema and instance documents based on the schema.
  • Certain rules govern the content and format of the schema namespaces.
  • Each schema namespace includes a category identifier that identifies a category to which the schema associated with the namespace relates.
  • Each namespace includes a category identifier that identifies a subject matter, such as, for example, a geographical region identifier, a legal jurisdiction identifier, a person, an address, a document type, a form type, and an organization identifier.
  • the geographical identifier may identify a geographical or other location or a place.
  • the organization identifier may identify a social or commercial organization, an institution, a department, an agency, an industry, etc.
  • a category identifier has a subject matter meaning that is commonly understood by humans so that understanding the category identifier is easy and so that reuse and management of schema is encouraged.
  • FIG. 1 is a block diagram representation of a system for developing and managing schema and XML documents in accordance with an exemplary embodiment of the present invention.
  • FIG. 2 is a block diagram representation of a schema framework of FIG. 1.
  • FIG. 3 is a block diagram representation of a schema repository of FIG. 1.
  • FIG. 4 is a block diagram representation of a schema generator of FIG. 1.
  • FIG. 5 is a block diagram representation of a code generator of FIG. 1.
  • FIG. 6 is a block diagram representation of a wizard of FIG. 1.
  • FIG. 7 is a block diagram representation of an editor of FIG. 1.
  • FIG. 1 depicts a block diagram of a system 100 for developing and managing schema and using the schema to author and manage content in accordance with an exemplary embodiment of the present invention.
  • the system 100 comprises a schema development and management subsystem 105 and a content authoring, management and electronic filing subsystem 110 .
  • the schema development and management subsystem 105 comprises a schema framework 115 that describes rules that govern the operation of a schema repository 120 , a schema generator 125 , and a code generator 130 .
  • the schema repository 120 and the schema generator 125 communicate between each other and with the code generator 130 .
  • Schema output from the schema development and management subsystem 105 are used as input for the content authoring, management, and electronic filing subsystem 110 .
  • schema output from the schema development and management subsystem can be recycled for reuse in the schema development and management subsystem.
  • schema output from the schema generator 125 can be used as input for the code generator 130 .
  • the code generator communicates with the content authoring, management, and electronic filing subsystem 110 .
  • the content authoring, management, and electronic filing subsystem 110 comprises a wizard 140 for editing forms, an editor 145 for editing documents, a viewer and indexer 150 , an electronic filing module 155 , and a document repository 160 .
  • the content authoring, management, and electronic filing subsystem 110 can also comprise external application software 165 .
  • the schema framework 115 provides a set of rules, or best practices, for developing schemas 200 that can be used to create messages 205 , forms 210 , and documents 215 , as depicted in FIG. 2.
  • the schemas use the W3C XML Schema 1.0 as a basis for creating the schema framework 115 .
  • other types or versions of schemas could be used, such as a future version of W3C XML Schema or OASIS' RELAX NG Schema.
  • the schemas use namespaces 220 to distinguish the context of XML elements that have the same name but that have different meanings.
  • An XML namespace is generally defined as a collection of names, identified by a URI reference, that are used in XML documents as element types and attribute names.
  • the schemas 200 generated through the schema framework 115 use meaningful namespaces 220 and meaningful namespace prefixes as a form of version control.
  • the namespaces 220 are meaningful in that they convey to the user of the system 100 a description of the XML elements and thus provide an automated way of discovering schema in Internet-based or local schema repositories.
  • Namespaces 220 are declared in an XML document either as a target namespace, in which case the namespace prefix is not used, or as a non-target namespace, in which case the namespace prefix is used.
  • a “xsd:targetNamespace” is declared with a value equal to the default namespace value.
  • the schema framework 115 distinguishes between two types of instance documents: (a) complex XML documents and (b) simple XML documents.
  • the namespace prefix prefixes all elements in the document, except that the root element may be unprefixed. That is, the prefix is separated from the element name by a colon.
  • Simple XML instance documents a default namespace without a prefix is used on each module's intended root element, in which case the default context of its descendants are implied.
  • the namespace prefix precedes the element name separated by a colon or the namespace is declared on a parent element in which case the default context of its descendents are implied.
  • the following are preferred namespaces.
  • the namespace prefixes are “Furniture” and “Document”. It should be understood that the prefix is not the actual namespace, but rather, the prefix is a mapping to it.
  • the following attribute maps the “Address” prefix to a namespace (that happens to be a uniform resource identifier “URI”):
  • the result is an element ⁇ Address:Line> in Instance Document One where the first namespace is used that has a different technical value than the same ⁇ Address:Line> element in Instance Document Two where the second namespace is used.
  • the two elements are different, even though textually they appear the same (in instance documents, e.g., ⁇ Address:Line> in a Complex XML document or ⁇ Line> in the “Address” context in a Simple XML document).
  • the schema framework 115 standardizes meaningful namespace prefixes. This provides a type of human-readable categorization system for schemas.
  • the “Address” prefix is used for a category of schemas that represent addresses, although each address schema may be slightly different and may be assigned a different namespace and a correspondingly difference place in a schema repository 120 .
  • the prefix “Address” is a standard prefix for addresses. There can be multiple namespaces associated with a single prefix, which can distinguish meaning and provide version control. Preferably, all addresses, for example, use the “Address” prefix.
  • schema framework 115 can accommodate foreign language formats, which use a different prefix that corresponds to the English word in the foreign language (e.g., “Addresse” would be used for a German address).
  • the schemas 200 generated through the schema framework 115 use meaningful namespaces 220 and meaningful namespace prefixes as a form of version control 225 .
  • Version control 225 is important because in the software and technical standards industries, most products have multiple versions that are incremented over time. It is useful to version XML schemas as well for at least three reasons: (1) in cases where an existing schema may be updated or replaced by a new schema; (2) in cases where there may be a need for two similar schemas to meet different requirements; and (3) in cases where there are language differences such as foreign languages or even differences in the English language (e.g., organization versus organisation).
  • version control 225 can be achieved with the use of unique namespaces 220 .
  • Namespaces are preferably URIs (i.e., uniform resource indicators) that point to a location at the schema repository 120 .
  • URIs i.e., uniform resource indicators
  • Local and mirrored repositories can also be used, provided those repositories preferably follow the schema framework 115 rules for local and mirrored repositories.
  • the namespace 220 is unique; the schemas 200 are frozen upon publication of the first instance document; and the schema 200 can be programmatically discovered in the schema repository 120 (or in the local or mirrored repository) based on the namespace string.
  • Namespaces 220 in the format 230 of a URI are preferably made of four parts, although other organization is possible.
  • the first part includes the string to a domain name, such as for example, “http://www.xmllegal.org/”.
  • the second part includes the string “Schema/”.
  • the third part is a logically-ordered string of meaningful subject matter, including jurisdictional, organizational, or geographical names, preferably separated by a forward or backslash, depending on the nature of the directory.
  • the fourth part is a numeral to indicate version. In some cases, the numeral to indicate version will sometimes precede the name of the schema as a grouping mechanism.
  • the numeral to indicate version may be omitted in cases, such as for example, where a primary schema imports secondary schemas and the primary schema uses a numeral for version control.
  • the secondary schemas can be located in subdirectories of the primary schema and are, therefore, clearly versioned from others of like kind.
  • the numeral indicating version can be in any one of the following formats, where X is a digit 0 to 9: XX; XXX; TestXX; or TestXXX, although other formats are possible.
  • the numeral at the end of the namespace allows different versions of the same type of schema to be adopted in the same geographical location, organization, or jurisdictions.
  • namespaces 220 and associated directory structures use full-spelled, Upper Camel Case words, except for widely understood abbreviations or acronyms (such as country codes), with no spaces, although namespaces 220 and directory structures can be created using abbreviated or truncated names or acronyms and be within the scope of the present invention.
  • the use of full-spelled Upper Camel Case words makes namespaces and directory structures human-readable and aesthetically pleasing and also provides the ability to more efficiently do mechanical human-language dictionary analysis and aggregation and comparison of human-language synonyms.
  • the schema repository 120 uses a descriptive label, such as one describing a general subject matter or organizational label, following the Part II “Schema/” string.
  • a descriptive label such as one describing a general subject matter or organizational label, following the Part II “Schema/” string.
  • Such labels include, for example, “Court”, “Transcripts”, “Justice”, “Healthcare”, “Automotive”, “Banking” or an organizational name, such as “xmlLegal”, “Microsoft”, or “DepartmentOfPublicSafety.”
  • a two-letter ISO 3166 country code optionally can be used. For example, “US” would be used for United States, or “AU” for Australia. Additionally, in the preferred embodiment, after the county code, the fully spelled state or province can be used.
  • a two-letter abbreviation for the state or province can be used.
  • a narrower geographic or jurisdictional subdivision such as the county name, can be used.
  • Different or additional subdivisions can be used to further refine the applicability of the schema and be within the scope of the present invention.
  • Instance documents can use namespaces 220 for version control 225 because the schema (or schemas) corresponding to the instance document can be “frozen” once a document instance has been published.
  • “freezing a namespace” or describing a schema as “frozen” means that the schema located in one or more repositories and identified by a unique identifier such as a unique namespace may no longer be changed.
  • a new schema or version of a schema of a similar type uses a different unique identifier and can be located in a correspondingly different place in one or more mirrored schema repositories.
  • a schema can be copied into another namespace and the new schema in the new namespace can be altered.
  • the original schema preferably cannot be changed. If the schema were to be changed after it was “frozen”, then the instance documents based on the changed schema potentially will not validate against the original schema, which means that applications cannot rely on either schema and the system may not function properly.
  • the schemas 200 are frozen once instance documents based on those schemas are published to the schema repository 120 because once an instance document is published and available to the world, the namespace in it will point back to the location in one or more schema repositories where the schema on which it is based is located. If the schema is changed at the position in the directory where the namespace points, then the instance documents based on the schema are not likely to validate against it, thus potentially causing interoperability problems that may cause the system to not function properly.
  • namespaces are declared as attributes of the xsd:schema element using a standard namespace prefix appropriate to the schema.
  • the namespace value is declared as an attribute in the xsd:schema element that matches the namespace declared in the xsd:import element.
  • the schema location attribute on the xsd:import element is preferably a relative path (rather than a hard coded path) to a location in the schema repository directory structure beginning with the directory “Schema.”
  • the schema framework 115 preferably orders schema constructs 245 as follows: complextypes; simpleTypes; elements; and groups, although other ordering schemes are also within the scope of the present invention.
  • the order of complexTypes and elements are preferably in the order the element first appears in the schema, even if the element is only referenced.
  • the first complexType in the schema preferably has an attribute name value that is the same as the schema's namespace prefix, filename, and parent or grandparent directory, as described below, although other naming conventions are also within the scope of the present invention.
  • the first complexType in the schema preferably corresponds to the element intended to be the “root” element of the schema.
  • the root element, the genre of the namespace prefix, the name of the schema filename in the schema repository, and the name of the schema's parent directory or grandparent directory if a version number directory is used, are preferably the same string.
  • the value of the “name” attribute on all complextypes is preferably the exact string as the corresponding element declaration.
  • All complexTypes preferably use the Attributes:Global attributeGroup.
  • ComplexTypes may contain element references to internal, globally declared elements or to imported elements, but preferably do not include locally declared, non-unique elements. For example, if the element names are not unique within the context of the namespace (which can happen with locally declared elements), then the system may not work properly.
  • ComplexTypes are preferably declared globally, not locally to an element.
  • SimpleTypes are preferably declared globally within the schema or imported from another schema.
  • XML information often sits just below the user interface. If named and structured such that the names convey the content of the elements, the names for elements 250 and attributes 255 can be taken directly from XML and used as labels in the user interface. For example, by searching the string “CaseName” for an uppercase character preceded by a lowercase character, it is very easy to add a space that results in a readable and aesthetically pleasing user interface. This can be done with elements that use underscores for spaces and for Lower Camel Case. If, however, abbreviations are used as element names, then the use of them as labels, without additional translation encoding, can often be difficult or confusing.
  • the element names have formats using uppercase letters for the first letter of each word (Upper Camel Case), although other element naming conventions are also within the scope of the present invention.
  • One or all words in the element name can be programmatically or otherwise capitalized, which ultimately provides a visually pleasing user interface.
  • the following are preferred formats for element names: CourtFiling, FirstName, LastName, and City.
  • the element names use no abbreviations. If, however, common abbreviations are used, then the abbreviations are preferably documented and listed in the schema's specification with the non-abbreviated form clearly documented.
  • elements 250 are preferably declared globally, not locally, as elements with no children elements except for elements used for documentation. (In the preferred embodiment, child elements can occur when using xsd:annotation or xsd:appinfo). Thus, all global elements are preferably unique to the schema and, hence, to the namespace, and therefore every element in the schema repository preferably has a unique and distinct meaning.
  • Elements 250 preferably use the “type” attribute. The value of the element's type attribute can be either the name of a complexType declared in the schema, or the name of a complexType declared in an imported schema. All elements 250 preferably use, at least, the Attribute:Global group of attributes. The global attributes are preferably declared in the element's corresponding complexType declaration. Elements used as children of other elements are referenced in the intended parent's complexType.
  • Attributes 255 are preferably declared in an element's corresponding complexType as a local attribute. Also preferably, attributes 255 are not declared globally and referenced. Any number of attributeGroup elements may be referenced. Attributes that are a simpleType preferably use the type attribute, consistent with the rule that simpleTypes are preferably declared globally.
  • the Attributes:Global group preferably includes at least the following attributes: ID (xsd:ID); Class (xsd:string); and Type (xsd:string), although other or additional attributes are also within the scope of the present invention.
  • the schema preferably do not use minOccurs and maxOccurs attributes on content model declarations for choice, sequence, or all, although other conventions are also within the scope of the present invention.
  • the schema also preferably do not use “nested” content models within a schema.
  • the group element may use minOccurs and maxOccurs. It is possible to “nest” content models by either importing the intended root element of a schema or by referencing a group.
  • Schemas can follow certain rules of construction. Schemas following the rules of constructions are called “normalized” schemas, and the process of creating or ensuring that a schema is normalized is called “normalization.”
  • Schema “normalization” is an algorithm that represents a set of best practices and conventions used in the schema framework 115 .
  • the algorithm functions such that an input schema is transformed into another representation and then transformed from that new representation into schema.
  • the resulting schema should be a valid schema, should follow the rules of the schema framework, and should validate the same instance documents as the original schema.
  • Schema normalization is done in the schema framework 115 so that one structure is used consistently in a number of schemas rather than several structures used inconsistently in different schemas. That is, preferably, an Address schema that is normalized uses the same schema constructs and conventions as a Person schema. Normalization makes it much easier for developers to understand and develop code for schemas and instance documents based on schemas, to manage schemas, as well as to develop new schemas.
  • the schema framework 115 preferably uses modular XML schemas as building blocks to build other, more complex schemas, messages, protocols, forms, and documents.
  • XML schemas 200 and XML namespaces 220 provide an easier technical means of creating “modular” schemas as compared to creating one large schema to describe an XML format. Modularity in XML schemas allows certain parts of the schema 200 to be used in other schema definitions and applications. Reuse of a schema module allows developers to build objects around schema modules and reuse code. Reuse of code speeds development and encourages standardization.
  • the schemas in the schema framework 115 are modular.
  • a schema describing a Person may include import Address, Phone, and Email schemas.
  • a schema describing a Vehicle may include a RegisteredOwner that may be a Person or an Organization.
  • each schema preferably is a separate schema module.
  • Complex schemas may have several modules.
  • the namespace prefix plus the name of the element, read together, should have a human-language meaning appropriate to the genre of the schema. For example, if the schema genre (e.g., namespace prefix) is “Person”, then the following prefix/element name combinations are preferable for the “Person” schema: Person: Name; Person: FirstName; Person: LastName; and Person: Address.
  • the schema genre e.g., namespace prefix
  • the root element of a schema may be imported and used in another schema in one of two ways: use in element declaration type attribute or use in element reference name attribute. Also preferably, only the “intended root element” of a schema or groups within a schema may be imported into another schema. That is, the entire “noun” or “object” is preferably used in the case of a root element or specified groups of elements. Other conventions are also within the scope of the present invention
  • the schema framework 115 distinguishes the following: individual elements; base primitives; two-level primitives; multi-level primitives; protocols; messages; forms; and documents.
  • An individual element is an XML element.
  • An XML element can have a tag name such as “City.”
  • An example of an XML element is ⁇ City>Sydney ⁇ /City>.
  • a base primitive is an XML schema module that logically groups a number of elements.
  • an Address is a base primitive that may include the elements “Line,” “City,” “State,” “PostalCode,” and “Country.”
  • all schemas import an Attributes.xsd that includes global attributes.
  • a Base Primitive by definition, imports only an Attributes.xsd, but does not import any other schema.
  • a two-level primitive is a primitive constructed from more than one base primitive.
  • a “Person” may be constructed using the schema modules “Address”, “Phone”, and “Email.”
  • Multi-level primitives are schema constructed from several base, two-level, or other multi-level primitives.
  • a “Vehicle” may include a registered owner that would be a “Person” or an “Organization.”
  • the Person and Organization schemas are themselves two-level primitives; and therefore, Vehicle becomes a multi-level schema.
  • Messages 205 and protocols are constructed from elements and base, two-level, and multi-level primitives. There is a fine line between a protocol and a message. Indeed, the line may be so blurred that there is little distinction.
  • a message is a transfer of data from one information system to another information system.
  • a protocol is a message or a series of messages that invokes a subsequent response (e.g., an acknowledgement) or some other workflow. In practice, most messages require some sort of response, so a message is usually part of a protocol and could be considered one and the same.
  • forms 210 are constructed from elements and base, two-level, and multi-level primitives.
  • a form is preferably combined with a stylesheet so that it is easy for a human to read.
  • “Forms” are distinguished from “documents” by the lack of free-form prose.
  • Forms 210 consist of data elements and corresponding labels arranged in a logical and aesthetically pleasing document.
  • Forms 210 may have “memo” fields for long answers to specific questions, but do not generally include long free-form prose, although other hybrid form-documents are also within the scope of the present invention.
  • additional rules can be specified for forms.
  • the schema framework 115 can use the following conventions to create special formats for forms 210 :
  • the first child of the root element is ⁇ Head>.
  • the second child of the root element is ⁇ Body>.
  • An optional third child of the root element is ⁇ Signature>.
  • ⁇ Head> is invisible metadata
  • ⁇ Body> is visible information on a form
  • ⁇ Signature> is information for a digital signature.
  • the root element can optionally be created by a “container” schema located within the namespace of the schema that is the first child of the body of the form. For example:
  • the head element preferably includes metadata about the form 210 that would not typically be included in the styled representation of the form (i.e., it would not appear on the face of the form for the human reader).
  • the head element preferably includes, but is not limited to, the following schemas: DocumentSummary; DocumentStatistics; DocumentVersion; DocumentProperties; and DocumentWorkflow. Other means of incorporating form metadata are also within the scope of the present invention.
  • the head element for all forms 210 is common or, at least, very similar.
  • the stylesheet for the form 210 can be included within the form or can be a reference to a separate file.
  • the body element's first, and preferably only, child includes the unique schema that make up the form.
  • Documents 215 are constructed from elements and base, two-level, and multi-level primitives. Like forms, a document 215 can be combined with a stylesheet so that it is easy for a human to read. Like forms, a document 215 can include a head, a body, and an optional signature. Unlike forms, documents 215 include free-form prose (or “unstructured text”) that requires special document-specific primitives. In the schema framework 115 , the head, body, and signature elements can operate in the same way for both forms and documents. The body of a document, however, differs from the body of a form.
  • the body of an document preferably includes (1) frontmatter; (2) a body, or body elements, that include as descendants paragraphs, headings, outlines and optionally tables and objects (graphics, pictures, controls), and (3) backmatter.
  • Paragraphs, headings, outlines, and tables include within them “flattened” inline vocabulary.
  • Frontmatter and backmatter usually include information that is structured like a form.
  • a court document usually has a caption with the name of the court, the names of the parties, a civil action number, and a title.
  • a contract usually has a title, date, names of parties, and recitals.
  • the information in the frontmatter and backmatter is preferably different, but all documents preferably have both frontmatter and backmatter, even if there is no content in the frontmatter or backmatter.
  • normal frontmatter information may appear in backmatter or visa versa.
  • the dates and parties in a contract are interchangeably included either at the front of the document or at the back, depending on the preferences of the author of the document.
  • frontmatter and backmatter is preferably the body of the document 215 .
  • the body of the document can be prose and can include a mixture of arbitrarily ordered headings, outlines (sometimes called lists), tables, and paragraphs as desired by the author.
  • the body may also include graphics, pictures, and other objects (such, for example, as ActiveX controls).
  • forms 210 and documents 215 may optionally include an XML signature.
  • An XML signature is information about a digital signature and should be distinguished from a “signature block.”
  • a signature block is viewable signature information that is usually included in backmatter.
  • a signature block may include the names of parties, titles, a typewritten signature (e.g., /Signature/) or a graphical signature (e.g., a bitmapped signature).
  • vocabulary 260 Sprinkled randomly throughout the paragraphs, tables, and outlines in the document body is vocabulary 260 .
  • vocabulary 260 For instance, in a contract, there are names, price terms, conditions, and consideration. In transcripts there are questions, answers, witnesses, and exhibits.
  • Different types of documents 220 have different types of vocabularies 260 . Not all vocabularies are available to all types of documents. Vocabularies 260 are, therefore, modular based on individual schema.
  • the schema framework 115 can distinguish between types of elements, including structural, data, and hybrid.
  • a structural element is one that represents the structure of a document, such a frontmatter, body, backmatter, paragraph, heading, outline, or table.
  • a data element is one that has some meaning to the human reader, such as, but not limited to, Name, Address, Time, Vehicle, and Consideration.
  • Hybrid elements are elements that serve a structural purpose and are also data. For example, the title in a document is structural in that it conventionally comes at the top of the document, somewhere in frontmatter. Title is also data, in that a title of a book could be extracted and taken out of its structural context and still have meaning.
  • Data elements and hybrid elements are preferably appropriate as vocabulary. Also preferably, pure structural elements are not appropriate as vocabulary. It should be noted that even data elements have structure when represented as XML. For example, an Address has within it (as children) address lines, city, state, postal code, and others.
  • Vocabulary 260 appears in the text portion of paragraphs, headings, outlines, and tables.
  • the text element in each of these structures is preferably “mixed” content, meaning that text can be arbitrarily sprinkled with elements within the text element.
  • a vocabulary group can be created in individual schemas. Each vocabulary group can be imported into a vocabulary schema.
  • a vocabulary group in the vocabulary schema can be imported into an inline schema. The inline schema can create various groups of vocabulary and other elements that are imported into the text element of paragraph, outline, heading, and table.
  • a vocabulary group in individual schemas can provide a “flatting” of any structure used by data elements. Structure is preserved in the data elements that have content models, but by referencing children, the children are made available through the vocabulary group for inserting into the text. In the preferred embodiment, these elements are called “inserted vocabulary elements” (“IVE”).
  • Vocabulary 260 is preferably collected by importing and referencing one or more groups in a vocabulary schema.
  • the vocabulary group can then be imported into the inline schema.
  • the inline schema preferably includes other elements that are common to all documents.
  • the inline group can then be imported into each of the text elements of paragraph, heading, outline, and table.
  • a simple reference to Inline:Inline makes available all of the vocabulary elements from all of the schema that are imported in the first step, which provides the ability to create either a very specific vocabulary for a specific document type or a very extensive vocabulary for a more general or complex document type.
  • the schemas can be maintained over time and published so that interested parties are able to discover schemas electronically.
  • the schemas are also documented.
  • the system 100 automatically maintains, discovers, and documents XML schema, in both a machine and human-readable format by publishing schema, documentation, data dictionaries, and indexed lists of schema in the schema repository.
  • a SchemaDescriptions.xsd file can be created such that it uses the namespace prefix “lml” (for “Legal Markup Language”).
  • a primary schema repository 120 that stores all schemas.
  • mirrored and/or local schema repositories can hold all or a subset of all schemas. It is also possible that several schema repositories exist that are not full mirrors of each other but that combined hold all schema.
  • a block diagram of an exemplary schema repository 120 is depicted in FIG. 3.
  • schemas in the schema repository 120 are located as a web resource at a URI corresponding to the value of the schema's namespace with a filename that is the same as the intended root element and namespace prefix.
  • the schema repository 120 can be accessed via HTTP, for example, although it is also possible to access schemas in repositories using other protocols and in other directory structures.
  • the schema repository 120 is a directory structure that allows any schema corresponding to any given arbitrary namespace or arbitrary instance document (which would have a namespace within it) to be discoverable and available. A schema is considered available even if it is password protected for security, privacy or other practical reasons.
  • the schema can also be available in mirrored or local repositories.
  • the schema repository 120 can be portable from the local or mirrored schema repositories.
  • Local schema repositories can be created, but preferably the schemas downloaded in the local schema repository match exactly the schemas in the schema repository 120 . If changes are made locally to a non-frozen schema, then the schema can be uploaded to the schema repository 120 , and the old schema can be archived. If the schemas in the local schema repository does not match exactly the schemas in the schema repository 120 , then the system may potentially encounter inoperability problems.
  • Mirrored schema repositories in either HTTP or FTP or other publicly accessible space can be created.
  • the mirrored schema repository follows the same directory structure as the schema repository 120 beginning with the directory “Schema”.
  • the mirrored schemas are exact replicas of corresponding schemas once a schema is frozen. If the schemas are not exact replicas, then the system 100 may potentially not work correctly because the system 100 preferably has distributed schema repositories.
  • creating exact replicas of schemas in a mirrored repository can be done using digital signature technology, although other means are also within the scope of the present invention.
  • the schema repository 120 can be password protected for access only by authorized users. Also, parts of the schema repository 120 can be password protected for access by different groups of users, while parts of the schema repository 120 can be open for semi-private or public consumption. Thus, “sub-repositories” can be created within the schema repository 120 . Each of these sub-repositories can be password protected such that a select group of users is given access. Each sub-repository can also have its own SchemaDescriptions.XML file. When a user navigates to that part of the schema repository 120 , the sub-repository would preferably have the same or similar look, feel, and functionality as the schema repository 120 , but only those schemas in that part of the sub-repository would be available for searching and viewing. For example, the schema repository can have a first sub-repository 305 A and a second sub-repository 305 B. The first sub-repository 305 A can have a security feature 310 that provides for password protection.
  • each sub-repository 305 A and 305 B can include a mailing list 315 and its own document repository 320 . Both the mailing list 315 and the document repositories 320 can be used in a workgroup environment where multiple users, including users across organizations, can work on a set of schema and documentation at once.
  • the schema repository 120 has a user interface 325 that allows the user to search the schema repository 120 and to view links to schemas in the repository.
  • the schema repository 120 can have a user interface 325 that lists the schema namespace prefix, or the “genre” of schema and its associated schema namespace as a web address. By clicking on the web address, the user can view 335 the schema.
  • the list of schema can be in alphabetical order based on the namespace.
  • search box/field that allows the user to search for a particular schema based on its namespace prefix or by elements, attributes, or types within schemas. For example, if the user searches the term “Email”, all of the schema that have the string “Email” will appear in the browser, and the other schema will be sorted out. Letters or partial words can also be searched.
  • the user can also view a description 340 of each schema. For example, if the user clicks on the schema prefix, the user can view a description of the schema.
  • the schema description can provide an update history for the schema, including the name of the author and whether the schema, in its history, has been copied from another namespace. This historical record can be useful for understanding when and why changes were made to the schema and can provide a means to trace the schema back in time.
  • the schema description can also be available either within the schema or in an accompanying documented schema.
  • the user can also view schema documentation 345 in the schema repository 120 .
  • the schema namespace is a hypertext link that can take the user to either the schema documentation or to the schema itself, if documentation is not available.
  • Schema documentation can include, but is not limited to, the schema namespace, the schema repository 120 , the schema prefix, the elements, attributes, types, and imported schema in the schema, and the change history.
  • all schema documentation includes the same or substantially similar information in the same or substantially similar format, even though the schema documentation can include a variety of information in a variety of formats.
  • the schema documentation begins with a table of contents.
  • the items in the table of contents are hypertext links that, when clicked, take the user to a description of the element, simpleType, imported schema, or other construct used in the schema.
  • each definition has a link that can take the user back to the table of contents.
  • the table of contents also includes a list of imported schema. Imported schema are external, not internal, and the schema themselves can contain elements, attributes, simpletypes, imported schema, and other constructs.
  • the user can also download 350 schema packages and view 355 data dictionaries.
  • the data dictionaries can be created from the schema and can provide a flat list of each term in a single schema or in a set of schema along with a link from the element, attribute, or simpleType name to the definition in the online schema documentation as well as the data type and a link to the definition of the data type.
  • the schema packages can be compressed (e.g., zipped) files that preserve the hierarchical directory structure and include all schema that are in a set of schemas.
  • the schema packages provide an easy way for a user to download the entire set of schema and unzip it into a local repository while preserving the directory structure.
  • the schema repository 120 can be periodically updated by using a crawler 360 .
  • the crawler 360 is a tool that allows an administrator to literally “crawl” the schema repository 120 and update the SchemaDescriptionXML files, which are used to generate the interfaces and provide the search capability described earlier in this section.
  • the crawler 360 can be a web-based tool.
  • the schema generator 125 is an application that provides an interface 405 for creating, editing, and building normalized schema.
  • the schema generator can preferably import 415 other schema or import 420 data dictionaries.
  • the schema generator 125 can provide a user interface 420 that allows a user to manage schema, schema documentation and schema data dictionaries.
  • the schema generator 125 can do this by allowing a user to view schema 425 ; backup schema 430 ; copy schema and subschema 435 ; delete schema 440 ; document and annotate schema 445 ; and validate and normalize schema 450 .
  • the user can create schema documentation 455 ; create data dictionaries 460 ; package schema and documentation 465 ; publish 470 schema, schema documentation, schema data dictionaries, and schema packages into a schema repository 120 ; and freeze schema 470 .
  • the user interface 405 can include a treeview and a schema properties window.
  • the treeview there can be, for example, four tabs, “Repository,” “Schema,” “Imported Schema,” and “Copy.”
  • the schema properties window shows the properties of the last opened schema.
  • the Repository tab opens by default.
  • the schema generator 125 can provide an interface into the local schema repository 120 .
  • a schema 425 To open or view a schema 425 , the user finds the schema in the schema repository 120 by preferably using the directory menu. Then, the user can select the schema file from the file menu. The user can open the schema in various applications, including but not limited to, the schema generator window, Internet Explorer, Notepad, or XML Spy.
  • Schema can also be documented 430 in the Repository tab.
  • a document button can be located on the Repository tab so that when the user clicks the button, the schema can be automatically documented.
  • the user can add prose documentation to the schema either by editing the schema as a text file in another application, such as, for example, in Notepad or XML Spy, or the user can add prose documentation through the schema generator interface.
  • the schema generator 125 can provide a message that states (a) that the schema is not valid with an error message from MSXML; (b) whether or not the schema is well-formed; (c) whether or not the schema namespace is a valid namespace; and (d) whether, based on the namespace, the schema is located in a correct place in the repository (if it is not located in a correct place, the schema may not import other schemas properly and may be invalid as a result, but otherwise be a good schema).
  • the schema generator 125 can include a function to automatically normalize schema by using a normalization algorithm.
  • the algorithm functions such that an input schema is transformed into another representation and then transformed from that new representation into a schema.
  • the resulting schema should be a valid schema, should follow the rules of the schema framework 115 , and should validate the same instance documents as the original schema.
  • the schema is a valid schema, such as a valid W3C schema, but not a normalized schema.
  • the schema generator 125 attempts to fix the schema and put it into a normalized state. If the schema generator 125 cannot do this, it provides some explanation. The user has the option of normalizing the schema without saving it or normalizing the schema and saving it.
  • Schema can also be backed-up 440 in the schema generator 125 .
  • a “Backup” button can exist on the Repository tab such that when the user clicks the Backup button, the schema is automatically backed-up in a file that preferably includes the date and time.
  • the schema generator 125 preferably copies the schema, changes the namespaces in the schema as well as any imported namespaces, and then saves the schema in its new location.
  • the user can also specify where the copied schemas are to be stored. Groups of schemas can also be copied in substantially the same manner. Preferably, there is “Copy Single Button” and a “Copy All” button that the user can click to copy a schema and to copy all the schemas.
  • a schema that is open in the schema generator 125 can be edited 450 . Clicking on the Schema tab can bring up a sliding tab interface that shows elements, children, simpleTypes, and attributes. Elements, children, simpleTypes, and attributes can be added, edited, and/or deleted. As new schema are opened in the application, the schema generator 125 stores element names, attribute names, simpleType names, documentation (if available) and other information in a Dictionary. If the schema is an XML schema, the vocabulary is associated with a namespace, so that there is a history of where the term originated. Vocabulary from schemas that are not normalized schemas can also be imported into the Dictionary.
  • the schema generator 125 has the ability to provide a pick list of existing schema and import user-selected schema directly from the schema repository 120 into a schema as it is being built. For example, if a form includes a “Witness”, it is possible to (a) create an element named “Witness”, (b) import the “Person” schema (which imports into it the Address, Email, and Phone schemas), and then (c) create the Witness type as “Person”.
  • the pick list of schemas is created from a SchemaDescriptions.XML file generated by the crawler. Because the schema repository 120 can be segregated and password protected and can contain multiple SchemaDescription.XML files, users of the schema generator 125 can be given limited access to parts of the schema repository 120 for security, privacy, or other reasons. Once schema have been generated, copied, edited, normalized, and documented, both the schema and documentation can be uploaded into the schema repository 120 . This can be accomplished by clicking on the schema and the documentation in the Repository tab and clicking the Upload button.
  • the user can create schema documentation 455 , create data dictionaries 460 , package schema and documentation 465 , publish schema 470 , and freeze schema 475 .
  • the code generator 130 has a user interface 505 which allows the user to generates code 510 , generate a test project 515 , and generate code documentation 520 from schema that, when compiled, provides a DOM-based (i.e., document object module based) application program interface (“API”) to the schema.
  • the code generator 130 generates code (or an API) that allows a programmer (or user) to easily output XML instance documents 525 that validate against the schema.
  • the code-generated code can also consume valid XML instance documents and provide the data in the document to other applications from its API.
  • the API can save the XML instance document in the XML document repository 160 in a consistent manner.
  • the code-generated code can be source code 530 or compiled code 535 , for example, and can be used in other applications, such as the editor, development kits, and applications created by third parties.
  • the test project can use the code-generated code and has in itself generated code.
  • the code generated code and the test projects output instance documents. Instance documents created by code-generated code (or the test project) can be stored in the document repository and used as input for the wizard, editor, viewer, and e-filing applications.
  • the code generator 130 has a user interface 505 that is simple to use.
  • the user can select a normalized schema from the schema repository 120 , can select an output location, and can select various properties, such as to generate only code or to generate source code or compiled code. Then, the user can click a button to generate code.
  • the code generated is a set of classes that, when run or compiled, provide a very quick and easy way of creating XML instance documents that validate against the schema, as compared to manually creating such code, which would require substantial time.
  • the resulting code can be used very easily within other code projects to output XML and consume XML instance documents, and to make data within the documents available through the API.
  • the code generator 130 also creates a test project that uses the code-generated source code 530 or compiled code 535 that outputs an XML instance document with dummy data.
  • the resulting test project can be used to output XML with little user intervention except mapping data values to the code-generated API and assuring the logic of the data is consistent with the rules of the schema.
  • the code generator 130 can also send XML instance documents over the Internet or other network using one of several standard protocols, such as HTTP, FTP, SMTP, or SOAP.
  • the output XML instance document 525 can be compatible with the indexer and viewer 150 so that complex searches and reports can be generated from a repository of XML instance documents.
  • the API allows a user to output “Simple XML” or “Complex XML.” Both Simple XML and Complex XML preferably validates against the schema used to generate the code that generated the instance document. Specifying “Simple XML” preferably generates XML using locally declared namespaces and no namespace prefixes. Specifying “Complex XML” preferably generates XML using either globally or locally declared namespaces and uses namespace prefixes.
  • the wizard 140 is designed to allow users to quickly and simply enter data into a user interface 605 (that can be dynamically created by the wizard), create and edit XML messages and forms 610 , create and edit templates 615 , and submit completed messages and forms to electronic filing applications or other custom applications 620 .
  • Users of the wizard 140 need little or no knowledge of XML or other underlying technologies. Users simply type data into a user interfaces to create the XML message or form. When the form is completed, it is preferably saved in a document repository 160 .
  • the wizard 140 is simple to use, supports multiple forms and messages, supports submission of the forms and messages to electronic filing applications or other custom applications for processing of the XML data, and supports automatic storage of XML forms and messages in the document repository.
  • Forms and messages can be created from any schema following the normalization rules of messages or forms.
  • Forms that have stylesheets can be printed directly from the wizard 140 .
  • Forms can be viewed in html format, as for example in Internet Explorer or Netscape, in an Adobe PDF format, in a Rich Text Format (“RTF”), or in Scalable Vector Graphic (“SVG”) format.
  • Previously created documents can be opened, edited, and resent to electronic filing applications or other custom applications.
  • the wizard 140 can be configurable to automatically distribute completed forms to multiple HTTP, FTP, or SMTP addresses.
  • the user can create multiple templates 615 from within the wizard 140 to hold frequently used data; the user can use the internal copy button to copy and reuse information previously typed into the form into multiple other locations within the form; or the user can use the external copy button to copy and reuse information from outside data sources.
  • the wizard 140 can employ “perfect fit” technology to provide as much or as little space on the form for data of variable length.
  • the wizard 140 can work with both encrypted and unencrypted schema. Use of encrypted schema provides additional data security and integrity. The wizard 140 is also compatible with the viewer 150 for complex searches of the document repositories.
  • the wizard 140 provides users with a simple way to enter data into XML forms.
  • Perfect Fit form technology provides as much or as little space as needed on the form for data of variable length. Perfect Fit technology works by combining the XML data and a stylesheet to dynamically create the visible form. Whether there is one address or five, all of the addresses will fit the space on the form. This is an improvement over paper forms and other electronic forms where a fixed space is provided for variable length data and blanks must be filled. For example, if a traditional form provides space for four data items, but the user types in only one of those data items, then there is extra space on the form for three items. Similarly, if the user has five items and there is only space for four, then the traditional form does not have enough room and the user either has to type in the form margin or some other free space, or the user has to add an addendum to the form.
  • Some forms can automatically be installed when the wizard 140 is installed.
  • Other forms can be downloaded from the schema repository 120 , or created by a user or an administrator using the schema generator 125 or another XML Schema development tool.
  • the system 100 is configured to allow only the administrator to add forms to the wizard 140 , although it is within the scope of this invention to allow any user of the wizard 140 the ability to add and remove forms from the wizard 140 .
  • the user can select “Simple XML” or “Complex XML” as the “Output format.” Both Simple XML and Complex XML can validate against the schema used to generate the wizard interfaces used for data entry. Specifying “Simple XML” preferably generates XML using locally declared namespaces and no namespace prefixes. Specifying “Complex XML” preferably generates XML using either globally or locally declared namespaces and will use namespace prefixes. The output location is a location in the document repository where the resulting XML instance document can be saved. The user can select any output location on any local or network drive for the document repository. Different forms can be saved in different document repositories, if desired.
  • Each form can be stored as a file in the document repository 160 , and then subsequently accessed by a user or an application, by its unique form name, which preferably identifies the content of the form.
  • a form for a police complaint in New Hampshire can have the form name: “New Hampshire Police Complaint”.
  • characters that are not permissible in filenames, such as colons or slashes, should not be used.
  • Stylesheets can also be applied to a form. The use of a stylesheet is optional, but the stylesheet will enable the document to be viewed in a human readable format.
  • the form can also be identified by opening it and determining its namespace.
  • the user can select either a new document or a new template.
  • a document is the default when the user first starts the application, and preferably, the application will remember the last selection each time the wizard 140 restarts.
  • the user can choose which form to open by selecting the form name from the list of available forms.
  • a form will open with a data entry screen on top.
  • the data entry interface is generated dynamically from the schema.
  • the form in the background is dynamically generated from the schema and the stylesheet.
  • the wizard 140 can dynamically generate new interfaces based on an arbitrary XML schema, provided the schema is normalized based on the rules of the schema framework.
  • the wizard 140 understands the form based on the namespace of the XML schema selected in the configuration. Schemas imported are understood as well, as their namespaces will be present when imported.
  • the wizard configuration file allows the administrator to select a schema and a stylesheet and a form name for the form. The form name appears in the new document window. In the background, the form is uniquely identified by its namespace.
  • the wizard 140 can automatically generate interfaces appropriate to the form based on the XML schema.
  • the stylesheet is created especially for data created by the XML schema, ensuring that it will work properly to render the data input and resulting XML.
  • Completed or partially completed forms can also be opened in the wizard 140 .
  • forms can be opened directly from the document repository or from within the viewer.
  • data in a saved form automatically populates the data entry screens where the data can be edited or augmented.
  • the wizard 140 can read the namespace and locate the appropriate schema in the schema repository 120 .
  • the wizard 140 may not work properly and the system 100 can fail.
  • the wizard 140 can generate interfaces appropriate to the XML form and can populate the XML data automatically into the interfaces.
  • schema included in the wizard installation files are encrypted and packaged so that they cannot be easily altered.
  • schema that are distributed are “frozen” from a technical perspective so they are more difficult to alter.
  • the user interface for each form can differ depending on the schema and stylesheet used.
  • the wizard 140 can use multiple screens and sub-screens to navigate through the data entry process. These screens correspond to the hierarchy of the XML schema. The user is able to type in as little or as much data as is necessary, as defined by the schema, for a particular form. The user can enter data into a field by typing directly into that field. Some fields, for example “Create Date” or “Create Time,” open a new pop up box where the user can enter data specific to that field.
  • common controls for the specific platform, programming language, or operating system, such as but not limited to, Windows, Linux, and Java
  • simpleTypes with enumerations can create drop down boxes with lists.
  • Strings (xsd:string) or integers (xsd:integer) with maxLength and minLength can create a text box that allows specified length in characters.
  • a simpleType named “Memo” can create a large, multi-line text box.
  • Special constructs can exist for font picker controls, radio buttons, check boxes, date and time pickers, and other controls.
  • the labels in the wizard 140 interface are preferably dynamically generated from element and attribute names.
  • element and attribute names use no spaces.
  • the wizard 140 searches for combinations of lower case and uppercase letters (e.g., “tN” in “FirstName”) and adds a space in between the lower case and upper case letter to create a dynamically generated label.
  • lower case and uppercase letters e.g., “tN” in “FirstName”
  • adds a space in between the lower case and upper case letter to create a dynamically generated label.
  • Other ways of generating labels for interfaces based on the schema are also within the scope of the present invention
  • users can create any arbitrary schema, using for example the schema generator 125 and have the schema and its vocabulary appear in and create data entry screens in the wizard 140 .
  • the wizard 140 can automatically generate foreign language interfaces simply by using schema that use foreign words for element and attribute names.
  • the user can navigate through the fields by using the mouse or the tab key and keystrokes, for example. “Previous” and “Next” buttons can be used to move between screens. Also, the user can navigate through main screens and sub-screens. Sub-screens are screens within screens. The relationship among screens reflects the Parent/Child/Sibling relationships as defined by the XML schema. As a result, it can be said that there are parent screens, children screens, which are screens on different levels, and sibling screens, which are screens on the same level. Parent screens may have multiple children screens. A child screen may itself be a parent screen and may have children.
  • “Choice screens” can be used to enable the user to choose an item from among a discrete number of items defined by the schema. For example, radio buttons can be used to allow the user to make a choice among the items. Once the user chooses an item, then the user can input data. Once the user presses a Done button, the text beside the radio button previously chosen will preferably change to reflect that data has been inputted.
  • the “Done” button can be used to save the data entered on the screen or sub-screen. If the user is in a sub-screen, the done button will preferably return the user to a main screen or parent screen.
  • a “Cancel” button can be used to discard all new data entry for that particular screen and close the screen. If the user is working on a sub-screen (e.g., a child screen) and presses cancel, the data entered on that screen will preferably be cleared and the user will return to the screen's parent screen. If the user presses cancel on a main screen, the entire form preferably will be closed and all previously entered data will be discarded. Also preferably, if the user is editing data previously typed, the cancel button will not discard the data previously typed, but new data will not be saved.
  • a sub-screen e.g., a child screen
  • a “Finish” button can be used to save all of the data entered as an XML file in the document repository.
  • the location of the document repository is set in the wizard configuration.
  • the Finish button also shows the user a finished version of the form the user has just completed. Additionally, the Finish button can be configured to email the form as an attachment to the email addresses in the configuration and/or to call an external application, such as an electronic filing application, that can receive and process the form.
  • buttons can be used to electronically file the form through the e-file module.
  • Other buttons can be added to the user interface.
  • the other buttons can include, for example, copy, delete, save, print preview, print, email, new form, all of which are generally known in the art.
  • arrow buttons can be used to add additional data in a field.
  • buttons can be defined within the wizard 140 .
  • one button can be labeled “Create Complaint”, such that when it is clicked, a screen pops up for data entry. Alternately, a complaint form can appear in the user interface.
  • the user of the wizard 140 can create and store various templates within the wizard 140 . Templates can be useful when the user wishes to store frequently used data in a form, so the user does not have to type the same information repeatedly. For example, if the user has a form where the user always uses the user's address as the return address, then the user could create a template with the user's address stored in it. The template can then be available to the user when the user creates a new document, which saves the user from typing in the address repeatedly. Thus, it can be much quicker to create and use templates for common data. Combined with the copy button, duplicate data entry is reduced or eliminated, and the quality of data is high because mistakes are avoided when retyping is avoided.
  • the wizard can receive as input an XML form or message created by code-generated code.
  • a developer can use the API from code-generated code to put information from a backend database into an XML instance document based on a schema.
  • the XML instance document created from the code-generated code can then be opened in the wizard and edited as if the XML instance document were created in the wizard.
  • the editor 145 is a word processor that can be used for editing the documents defined by the schema framework 115 . Even a user unfamiliar with XML and the underlying technology can quickly and easily operate the editor 145 . Preferably, the editor 145 automatically configures itself based on the document type opened. Also preferably, the editor 145 uses the wizard 140 internally to allow the user to edit data inside the document without seeing the XML tags within the document.
  • the editor 145 has an authoring interface 705 that preferably uses “colorization” 710 , “tool tips” 715 , and “keystrokes” 720 to show the author visually where data elements and document parts are located within the document, rather than including tags within the text.
  • This provides a what-you-see-is-what-you-get (“WYSIWIG”) XML authoring environment. Additionally, the user can insert new vocabulary into the XML document. Moreover, the editor 145 is preferably compatible with the wizard 140 and can be used in frontmatter, backmatter, and within paragraphs, outlines, tables, and headings in the body. The editor can include an electronic filing button that passes documents to an electronic filing application.
  • WYSIWIG what-you-see-is-what-you-get
  • the user can create a new document, edit a document, or create a document from a template.
  • the user can search the document repository and open a document for editing.
  • the user interface of the editor 145 has the look and feel of standard word processing software.
  • the top and bottom portions of the document are preferably static forms. For example, if a user is typing information into the document frontmatter, and the user types the enter key or the spacebar key within a vocabulary item, the wizard tool will pop up and provide the user an interface in which to type the information.
  • the enter key does not produce a line feed within frontmatter, backmatter, or a vocabulary item.
  • the user edits prose that is not vocabulary within paragraphs, outlines, and tables within the body of the document and types the enter key a line feed is created.
  • document formats such as MS Word and Word Perfect create a completely free-flowing document format where line feeds are inserted whenever the enter key is used, creating a very flexible authoring environment with no fixed content.
  • Document formats such as Adobe Portable Document Format (PDF) are very static, rigid formats that allow a user to type data into blanks, but do not allow the free-form editing environment of a word processor.
  • PDF Adobe Portable Document Format
  • the editor uses a document format (defined by the schema framework) that tells the application that some parts of the document are fixed and not appropriate for line feeds, while other parts of the document are not fixed and are appropriate for free-form editing such as editing in a word processor.
  • the top and bottom of the document are authored much like a document in the wizard 140 except that in addition to the wizard interface, it is possible to type directly into the document, which is similar to using a word processor or typing into a fill-in-the-blank electronic form.
  • the user can type into the interface, which is similar to using a word process or typing into a fill-in-the-blank electronic form, or the user places the cursor into a vocabulary field and clicks the enter key or the spacebar key.
  • the wizard 140 launches.
  • the user can also right click on the mouse to insert new vocabulary or edit existing vocabulary with the wizard 140 .
  • the wizard 140 opens, the user can then type in information to fill the vocabulary.
  • Some vocabulary items for example “Name of Child” or “Address”, can open a pop up box where the user can enter data specific to that field.
  • Other items, such as “Date” fields can open a pop up box that allows the user to choose a date using a date picker control.
  • some vocabulary items can be edited, while other vocabulary items can remain unedited.
  • the user can select a vocabulary field with the mouse (for example, by left clicking the field) and then can type directly into the field.
  • the vocabulary placeholder e.g. “[Enter Name of Child]”
  • the area where the user can enter text changes color, which is a technique known as colorization 710 .
  • colorization 710 a technique known as colorization 710 .
  • different colors indicate where pieces or chunks of vocabulary, clauses, and paragraphs exist in the document.
  • a tool tip 715 can appear over the vocabulary, clause, or paragraph, which conveys to the user the information is within the document.
  • the user can also use the arrow keys to move between the different fields, vocabulary, clauses, and paragraphs (“nodes”).
  • keystrokes 720 are used in the user interface to move between the different nodes. For example, if the cursor is in front of the last character at the end of the first node, and the user clicks the right arrow key, the cursor will move one character to the end of the first node, adjacent to the second node. The first node will remain colored. When the user clicks the right arrow key again, the first node will loose color and the second node will become colored, although the cursor will not move in the user interface.
  • the color signifies to the user that the content in the first node is no longer editable but that the content in the second node is editable. If the user clicks the right arrow key a third time, then the cursor will move one character to the right.
  • two keystrokes of the arrow keys allow the user to visually move between adjacent nodes (e.g., three right arrow key strokes result in only two movements of the cursor when the cursor is at the boundary of a node).
  • This behavior is unlike other word processors. Combined with colorization, this behavior enables the editor's WYSIWYG feature, because unlike other word processors, viewable markers are not required within the editable document.
  • Vocabulary placeholders preferably use [brackets] and the word “Type” to indicate a blank vocabulary item within the document, which can be edited, although other textual cues could be used.
  • the placeholder disappears. If the user deletes all of the text in a vocabulary item, by using the delete or backspace key, the vocabulary place holder preferably reappears.
  • a date wizard can be used to enter the date.
  • the date wizard can provide drop down lists of the day, month, and year, and then automatically create a date field in the XML document.
  • the editor 145 can also have a plurality of buttons, including, but not limited to, next, previous, cancel, done, and finish, to move between screens and to save, cancel, or manipulate data therein.
  • the user can open, for example, a notepad application.
  • the notepad has the look and feel of standard word processing software, with various editing tools, toolbars, and pop-up menus from the right click of the mouse.
  • the user can create a new XML document.
  • the user can enter paragraph text by, for example, clicking on the “[Type paragraph]” field on the screen, and typing into it.
  • the user can select a feature to convert the paragraphs typed into an outline format.
  • An outline is an indented and numbered area of text (similar to bulleted lists in a word processor).
  • Outlines can also be created directly within notepad.
  • the user can add headings to the paragraphs.
  • the user can select the heading option from the toolbar or the pop-up menu from the right click of the mouse to generate a new heading. Headings can be automatically numbered within the XML document.
  • the editor 145 has the ability to add and save “most used clauses” that can be automatically inserted into the XML document, including into the paragraphs, headings, and outlines.
  • creating documents is quick and easy and reduces the number of errors by minimizing the data entry involved in re-keying.
  • a pop-up window or a menu can be used to store the “most used clauses” that can later be accessed by the user by opening the window or menu.
  • buttons will appear on a left-aligned toolbar that correspond to structural elements in the body of the document.
  • buttons will appear on a left-aligned toolbar that correspond to structural elements in the body of the document.
  • a transcript if question and answer structural elements are defined by the schema in a document's body, then buttons that allow the user to insert a question and answer will preferably appear on the left-aligned toolbar.
  • a clause structural element is defined by the schema, then a button that allows the user to insert a clause will preferably appear on the left-aligned toolbar.
  • the document repository 160 is a directory structure that can store the various documents and forms. Also preferably, the document repository 160 can be indexed and searched by the indexer and viewer 150 .
  • the directory structure is set of hierarchical directories and subdirectories that are organized by a main directory determined by a user, with the first level of subdirectories named based on the year in which an XML instance document is created, such as “2003” or “2004”; the second level of subdirectories named based on the numerical month in which the XML instance document is created, such as “01” for January or “02” for February; and the third level of subdirectories named based on the day in which the XML instance document is created. For example, an instance document created on March 7 th , 2004, can be saved in a directory such as “MainDirectory/2004/03/03/.”
  • the viewer and indexer 150 can search the document repository 160 based on any of a variety of search parameters.
  • the viewer and indexer 150 can search any field of each document in the document repository 160 .
  • the viewer and indexer 150 can automatically configure itself based on the rules of the schema framework. For example, the viewer and indexer 150 can automatically configure itself based on an input schema to create a search term or a plurality of search terms that can be used to search the document repository 160 (and/or mirrored and local repositories) containing documents and forms created based on the same input schema. If used with the e-filing module 155 , electronic filings and confirmations are also saved in the document repository 160 and are easily and fully searchable using the viewer 150 .
  • the e-filing module allows the user of the system 100 to electronically file the form or document with an electronic filing service provider.
  • the module allows the user to send one or more documents to one or more recipients in a manner similar to using electronic mail.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The schema framework of the present invention is a set of rules and best practices that a user follows when creating schema in accordance with the present invention. By following these rules, schema are produced that can be used, reused, and managed in a distributed computing environment, thus reducing the time and effort associated with creating instance documents. Certain rules govern the content and format of the schema namespaces. Each schema namespace includes a category identifier that identifies a category to which the schema associated with the namespace relates. Once an instance document has been published by storing it in a schema repository, the schema and the namespace associated with that schema are “frozen” and cannot be changed. By freezing the schema and namespace, the schema and namespace become standardized, which facilitates instance document generation, validation, and use across a distributed system.

Description

    CROSS REFERENCE TO RELATED APPLICATION
  • This application claims priority to U.S. Provisional Patent Application Ser. No. 60/477,530, filed Jun. 11, 2003, which is hereby incorporated herein by reference in its entirety for all purposes.[0001]
  • FIELD OF THE INVENTION
  • The present invention relates generally to mark up language schema, and more particularly, to a schema framework and a method and apparatus for normalizing schema to ensure that they conform to the framework. [0002]
  • BACKGROUND OF THE INVENTION
  • Extensible Markup Language (XML) is specification developed by the World Wide Web Consortium (“WC3”). XML has become increasingly more important in the exchange of data and documents (“XML documents”) on the Web and elsewhere. XML allows designers to create their own data and document formats (“formats”). XML formats are customized tags, enabling the definition, transmission, validation, and interpretation of data between applications and between organizations. Schemas define XML formats. The W3C, OASIS, and other organizations have published specifications for creating schemas (e.g., the W3C's XML DTDs and XML Schema, and OASIS' Relax NG). There is, however, no specification that describes how designers can manage schemas on a large scale and within a standard schema framework. [0003]
  • Therefore, there exists in the industry a need for a system that facilitates the ongoing and consistent creation, management, and use of multiple schemas and versions of schemas over time. Further needs exist for a set of best practices and methodology for developing XML schemas that provide version control, unique schema identifiers, schema management and maintenance over time, and consistent publishing rules for schema discovery and documentation. [0004]
  • SUMMARY OF THE INVENTION
  • The schema framework of the present invention is a set of rules and best practices that a user follows when creating schema in accordance with the present invention. By following these rules, schema are produced that can be used, reused, and managed in a distributed computing environment, thus reducing the time and effort associated with creating and using schema and instance documents based on the schema. Certain rules govern the content and format of the schema namespaces. Each schema namespace includes a category identifier that identifies a category to which the schema associated with the namespace relates. Once an instance document based on the schema has been published in a schema repository, the schema and the namespace associated with that schema are “frozen” and cannot be changed. By freezing the schema and namespace, the schema and namespace become standardized, which facilitates instance document generation, validation, and use across a distributed system. [0005]
  • In addition, the namespace category identifier makes it possible to group schema in the repository by subject matter, which allows schema to be more easily searched, retrieved and managed from distributed schema repositories. This also facilitates instance document generation across a distributed system. Each namespace includes a category identifier that identifies a subject matter, such as, for example, a geographical region identifier, a legal jurisdiction identifier, a person, an address, a document type, a form type, and an organization identifier. The geographical identifier may identify a geographical or other location or a place. The organization identifier may identify a social or commercial organization, an institution, a department, an agency, an industry, etc. Preferably, a category identifier has a subject matter meaning that is commonly understood by humans so that understanding the category identifier is easy and so that reuse and management of schema is encouraged. [0006]
  • These and other features and advantages of the present invention will become apparent from the following description, drawings and claims. [0007]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram representation of a system for developing and managing schema and XML documents in accordance with an exemplary embodiment of the present invention. [0008]
  • FIG. 2 is a block diagram representation of a schema framework of FIG. 1. [0009]
  • FIG. 3 is a block diagram representation of a schema repository of FIG. 1. [0010]
  • FIG. 4 is a block diagram representation of a schema generator of FIG. 1. [0011]
  • FIG. 5 is a block diagram representation of a code generator of FIG. 1. [0012]
  • FIG. 6 is a block diagram representation of a wizard of FIG. 1. [0013]
  • FIG. 7 is a block diagram representation of an editor of FIG. 1.[0014]
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
  • Referring now to the drawing figures, in which like reference numbers refer to like parts throughout the several views, preferred forms of the present invention will now be described by way of example embodiments. It is to be understood that the embodiments described and depicted herein are only selected examples of the many and various forms that the present invention may take, and that these examples are not intended to be exhaustive or limiting of the claimed invention. Also, as used in the specification including the appended claims, the singular forms “a,” “an,” and “the” include the plural unless the context clearly dictates otherwise. [0015]
  • FIG. 1 depicts a block diagram of a [0016] system 100 for developing and managing schema and using the schema to author and manage content in accordance with an exemplary embodiment of the present invention. Preferably, the system 100 comprises a schema development and management subsystem 105 and a content authoring, management and electronic filing subsystem 110.
  • The schema development and [0017] management subsystem 105 comprises a schema framework 115 that describes rules that govern the operation of a schema repository 120, a schema generator 125, and a code generator 130. The schema repository 120 and the schema generator 125 communicate between each other and with the code generator 130. Schema output from the schema development and management subsystem 105 are used as input for the content authoring, management, and electronic filing subsystem 110. Additionally, schema output from the schema development and management subsystem can be recycled for reuse in the schema development and management subsystem. As an example, schema output from the schema generator 125 can be used as input for the code generator 130. The code generator, in turn, communicates with the content authoring, management, and electronic filing subsystem 110.
  • The content authoring, management, and [0018] electronic filing subsystem 110 comprises a wizard 140 for editing forms, an editor 145 for editing documents, a viewer and indexer 150, an electronic filing module 155, and a document repository 160. The content authoring, management, and electronic filing subsystem 110 can also comprise external application software 165.
  • The Schema Framework [0019]
  • The [0020] schema framework 115 provides a set of rules, or best practices, for developing schemas 200 that can be used to create messages 205, forms 210, and documents 215, as depicted in FIG. 2. Preferably, the schemas use the W3C XML Schema 1.0 as a basis for creating the schema framework 115. However, other types or versions of schemas could be used, such as a future version of W3C XML Schema or OASIS' RELAX NG Schema.
  • Namespaces [0021]
  • Preferably, the schemas use [0022] namespaces 220 to distinguish the context of XML elements that have the same name but that have different meanings. An XML namespace is generally defined as a collection of names, identified by a URI reference, that are used in XML documents as element types and attribute names. More preferably, the schemas 200 generated through the schema framework 115 use meaningful namespaces 220 and meaningful namespace prefixes as a form of version control. Preferably, the namespaces 220 are meaningful in that they convey to the user of the system 100 a description of the XML elements and thus provide an automated way of discovering schema in Internet-based or local schema repositories.
  • [0023] Namespaces 220 are declared in an XML document either as a target namespace, in which case the namespace prefix is not used, or as a non-target namespace, in which case the namespace prefix is used. Preferably, a “xsd:targetNamespace” is declared with a value equal to the default namespace value.
  • The [0024] schema framework 115 distinguishes between two types of instance documents: (a) complex XML documents and (b) simple XML documents. In a complex XML instance document, the namespace prefix prefixes all elements in the document, except that the root element may be unprefixed. That is, the prefix is separated from the element name by a colon. In Simple XML instance documents, a default namespace without a prefix is used on each module's intended root element, in which case the default context of its descendants are implied.
  • In an instance document, the namespace prefix precedes the element name separated by a colon or the namespace is declared on a parent element in which case the default context of its descendents are implied. For example, the following are preferred namespaces. [0025]
  • xmlns: Furniture=″http://www.xmllegal.org/Schema/xmlLegal/Furniture/01 [0026]
  • xmlns: Document=″http://www.xmllegal.org/Schema/xmlLegal/Document/01 [0027]
  • Thus, in these two examples, the namespace prefixes are “Furniture” and “Document”. It should be understood that the prefix is not the actual namespace, but rather, the prefix is a mapping to it. [0028]
  • For example, the following attribute maps the “Address” prefix to a namespace (that happens to be a uniform resource identifier “URI”): [0029]
  • xmlns:Add ress=“http://www.XMLlegal.org/Schema/Building Blocks/Primitives/Add ress/01/”[0030]
  • In the next example, the prefix is the same, but the namespace is different: [0031]
  • xmlns:Address=“http://www.XMLlegal.org/Schema/Building Blocks/Primitives/Add ress/02/”[0032]
  • The result is an element <Address:Line> in Instance Document One where the first namespace is used that has a different technical value than the same <Address:Line> element in Instance Document Two where the second namespace is used. Thus, the two elements are different, even though textually they appear the same (in instance documents, e.g., <Address:Line> in a Complex XML document or <Line> in the “Address” context in a Simple XML document). [0033]
  • Thus, unlike other namespace regimes, the [0034] schema framework 115 standardizes meaningful namespace prefixes. This provides a type of human-readable categorization system for schemas. For example, the “Address” prefix is used for a category of schemas that represent addresses, although each address schema may be slightly different and may be assigned a different namespace and a correspondingly difference place in a schema repository 120.
  • Thus, it can be said that a “genre” of schemas is “Address” but there may be different types of addresses within the genre. In this way, the specific “meaning” of a particular XML instance document can be tied to the schema located at a repository location with the same namespace. If the [0035] schema 200 is frozen, then this in turn “freezes” the meaning of the schema and all document instances associated with it. This provides a great deal of flexibility in creating related schemas for similar but different applications, while providing both a technical and human-readable means of understanding instance documents and mapping like-schema to like-schema and like-meaning to like-meaning.
  • In exemplary embodiments, the prefix “Address” is a standard prefix for addresses. There can be multiple namespaces associated with a single prefix, which can distinguish meaning and provide version control. Preferably, all addresses, for example, use the “Address” prefix. [0036]
  • It should be noted that the list of standard prefixes, including but not limited to, Phone, Email, Person, and Organization can expand. Thus, the [0037] schema framework 115 is designed to accommodate expansion and evolution over time and to do so such that “meaning” can be fixed and discovered in a mechanical way.
  • It should also be noted that multiple schema types can exist in the same XML document (e.g., multiple Address formats used in the same document). If two address formats exist in the same document, then meaningful prefixes can preferably be used that establish the distinction (e.g., ShortAddress and LongAddress). Additionally, the [0038] schema framework 115 can accommodate foreign language formats, which use a different prefix that corresponds to the English word in the foreign language (e.g., “Addresse” would be used for a German address).
  • Namespaces for Version Control [0039]
  • In the preferred embodiment, the [0040] schemas 200 generated through the schema framework 115 use meaningful namespaces 220 and meaningful namespace prefixes as a form of version control 225. Version control 225 is important because in the software and technical standards industries, most products have multiple versions that are incremented over time. It is useful to version XML schemas as well for at least three reasons: (1) in cases where an existing schema may be updated or replaced by a new schema; (2) in cases where there may be a need for two similar schemas to meet different requirements; and (3) in cases where there are language differences such as foreign languages or even differences in the English language (e.g., organization versus organisation).
  • Thus, [0041] version control 225 can be achieved with the use of unique namespaces 220. Namespaces are preferably URIs (i.e., uniform resource indicators) that point to a location at the schema repository 120. Local and mirrored repositories can also be used, provided those repositories preferably follow the schema framework 115 rules for local and mirrored repositories.
  • In a preferred embodiment, the [0042] namespace 220 is unique; the schemas 200 are frozen upon publication of the first instance document; and the schema 200 can be programmatically discovered in the schema repository 120 (or in the local or mirrored repository) based on the namespace string.
  • Format of a Namespace [0043]
  • Namespaces [0044] 220 in the format 230 of a URI are preferably made of four parts, although other organization is possible. In the preferred embodiment, the first part includes the string to a domain name, such as for example, “http://www.xmllegal.org/”. The second part includes the string “Schema/”. The third part is a logically-ordered string of meaningful subject matter, including jurisdictional, organizational, or geographical names, preferably separated by a forward or backslash, depending on the nature of the directory. The fourth part is a numeral to indicate version. In some cases, the numeral to indicate version will sometimes precede the name of the schema as a grouping mechanism. The numeral to indicate version may be omitted in cases, such as for example, where a primary schema imports secondary schemas and the primary schema uses a numeral for version control. In such a case, the secondary schemas can be located in subdirectories of the primary schema and are, therefore, clearly versioned from others of like kind. In the preferred embodiment, the numeral indicating version can be in any one of the following formats, where X is a digit 0 to 9: XX; XXX; TestXX; or TestXXX, although other formats are possible. The numeral at the end of the namespace allows different versions of the same type of schema to be adopted in the same geographical location, organization, or jurisdictions.
  • Preferably, [0045] namespaces 220 and associated directory structures use full-spelled, Upper Camel Case words, except for widely understood abbreviations or acronyms (such as country codes), with no spaces, although namespaces 220 and directory structures can be created using abbreviated or truncated names or acronyms and be within the scope of the present invention. The use of full-spelled Upper Camel Case words makes namespaces and directory structures human-readable and aesthetically pleasing and also provides the ability to more efficiently do mechanical human-language dictionary analysis and aggregation and comparison of human-language synonyms.
  • In the preferred embodiment, the [0046] schema repository 120 uses a descriptive label, such as one describing a general subject matter or organizational label, following the Part II “Schema/” string. Such labels include, for example, “Court”, “Transcripts”, “Justice”, “Healthcare”, “Automotive”, “Banking” or an organizational name, such as “xmlLegal”, “Microsoft”, or “DepartmentOfPublicSafety.” In the preferred embodiment, either before or following the subject matter or organizational label, a two-letter ISO 3166 country code optionally can be used. For example, “US” would be used for United States, or “AU” for Australia. Additionally, in the preferred embodiment, after the county code, the fully spelled state or province can be used. Optionally, a two-letter abbreviation for the state or province can be used. After the state or province name, a narrower geographic or jurisdictional subdivision, such as the county name, can be used. Different or additional subdivisions can be used to further refine the applicability of the schema and be within the scope of the present invention.
  • Freezing a Schema in a Namespace [0047]
  • Instance documents can use [0048] namespaces 220 for version control 225 because the schema (or schemas) corresponding to the instance document can be “frozen” once a document instance has been published.
  • Stated another way, “freezing a namespace” or describing a schema as “frozen” means that the schema located in one or more repositories and identified by a unique identifier such as a unique namespace may no longer be changed. Thus, preferably, a new schema or version of a schema of a similar type uses a different unique identifier and can be located in a correspondingly different place in one or more mirrored schema repositories. For example, a schema can be copied into another namespace and the new schema in the new namespace can be altered. However, once frozen, the original schema preferably cannot be changed. If the schema were to be changed after it was “frozen”, then the instance documents based on the changed schema potentially will not validate against the original schema, which means that applications cannot rely on either schema and the system may not function properly. [0049]
  • Preferably, the [0050] schemas 200 are frozen once instance documents based on those schemas are published to the schema repository 120 because once an instance document is published and available to the world, the namespace in it will point back to the location in one or more schema repositories where the schema on which it is based is located. If the schema is changed at the position in the directory where the namespace points, then the instance documents based on the schema are not likely to validate against it, thus potentially causing interoperability problems that may cause the system to not function properly.
  • To overcome these shortcomings, a new version of the same schema can be created and stored in a directory corresponding to a similar, but new namespace. In this way, the integrity of published instance documents is maintained indefinitely, while allowing new versions to be developed. [0051]
  • Namespace Declarations and Import Statements [0052]
  • In the preferred embodiment, namespaces are declared as attributes of the xsd:schema element using a standard namespace prefix appropriate to the schema. The namespace prefix represents the genre of schemas being created, such as, but not limited to, an Address, Phone, Email, Person, Organization, Weapon, Vehicle, =, Account, or Patient. New namespace prefixes are added as desired and are preferably descriptive of the schema genre being described. Also preferably, the schemas can import an Attributes schema, which is a set of global attributes. [0053]
  • In the preferred embodiment, the namespace value is declared as an attribute in the xsd:schema element that matches the namespace declared in the xsd:import element. The schema location attribute on the xsd:import element is preferably a relative path (rather than a hard coded path) to a location in the schema repository directory structure beginning with the directory “Schema.”[0054]
  • Conventions [0055]
  • For organizational purposes, the [0056] schema framework 115 preferably orders schema constructs 245 as follows: complextypes; simpleTypes; elements; and groups, although other ordering schemes are also within the scope of the present invention. The order of complexTypes and elements are preferably in the order the element first appears in the schema, even if the element is only referenced. Regardless of how complexTypes are ordered, in the preferred embodiment, the first complexType in the schema preferably has an attribute name value that is the same as the schema's namespace prefix, filename, and parent or grandparent directory, as described below, although other naming conventions are also within the scope of the present invention.
  • The first complexType in the schema preferably corresponds to the element intended to be the “root” element of the schema. The root element, the genre of the namespace prefix, the name of the schema filename in the schema repository, and the name of the schema's parent directory or grandparent directory if a version number directory is used, are preferably the same string. [0057]
  • The value of the “name” attribute on all complextypes is preferably the exact string as the corresponding element declaration. All complexTypes preferably use the Attributes:Global attributeGroup. ComplexTypes may contain element references to internal, globally declared elements or to imported elements, but preferably do not include locally declared, non-unique elements. For example, if the element names are not unique within the context of the namespace (which can happen with locally declared elements), then the system may not work properly. ComplexTypes are preferably declared globally, not locally to an element. SimpleTypes are preferably declared globally within the schema or imported from another schema. [0058]
  • Element and Attributes [0059]
  • XML information often sits just below the user interface. If named and structured such that the names convey the content of the elements, the names for [0060] elements 250 and attributes 255 can be taken directly from XML and used as labels in the user interface. For example, by searching the string “CaseName” for an uppercase character preceded by a lowercase character, it is very easy to add a space that results in a readable and aesthetically pleasing user interface. This can be done with elements that use underscores for spaces and for Lower Camel Case. If, however, abbreviations are used as element names, then the use of them as labels, without additional translation encoding, can often be difficult or confusing.
  • Thus, preferably, the element names have formats using uppercase letters for the first letter of each word (Upper Camel Case), although other element naming conventions are also within the scope of the present invention. One or all words in the element name can be programmatically or otherwise capitalized, which ultimately provides a visually pleasing user interface. For example, the following are preferred formats for element names: CourtFiling, FirstName, LastName, and City. Also preferably, the element names use no abbreviations. If, however, common abbreviations are used, then the abbreviations are preferably documented and listed in the schema's specification with the non-abbreviated form clearly documented. [0061]
  • In the preferred embodiment, [0062] elements 250 are preferably declared globally, not locally, as elements with no children elements except for elements used for documentation. (In the preferred embodiment, child elements can occur when using xsd:annotation or xsd:appinfo). Thus, all global elements are preferably unique to the schema and, hence, to the namespace, and therefore every element in the schema repository preferably has a unique and distinct meaning. Elements 250 preferably use the “type” attribute. The value of the element's type attribute can be either the name of a complexType declared in the schema, or the name of a complexType declared in an imported schema. All elements 250 preferably use, at least, the Attribute:Global group of attributes. The global attributes are preferably declared in the element's corresponding complexType declaration. Elements used as children of other elements are referenced in the intended parent's complexType.
  • Attributes [0063] 255 are preferably declared in an element's corresponding complexType as a local attribute. Also preferably, attributes 255 are not declared globally and referenced. Any number of attributeGroup elements may be referenced. Attributes that are a simpleType preferably use the type attribute, consistent with the rule that simpleTypes are preferably declared globally.
  • The Attributes:Global group preferably includes at least the following attributes: ID (xsd:ID); Class (xsd:string); and Type (xsd:string), although other or additional attributes are also within the scope of the present invention. [0064]
  • Although it is possible to use minOccurs and maxOccurs in a variety of ways, the schema preferably do not use minOccurs and maxOccurs attributes on content model declarations for choice, sequence, or all, although other conventions are also within the scope of the present invention. The schema also preferably do not use “nested” content models within a schema. The group element may use minOccurs and maxOccurs. It is possible to “nest” content models by either importing the intended root element of a schema or by referencing a group. [0065]
  • Normalization [0066]
  • Schemas can follow certain rules of construction. Schemas following the rules of constructions are called “normalized” schemas, and the process of creating or ensuring that a schema is normalized is called “normalization.”[0067]
  • Schema “normalization” is an algorithm that represents a set of best practices and conventions used in the [0068] schema framework 115. In the preferred embodiment, the algorithm functions such that an input schema is transformed into another representation and then transformed from that new representation into schema. The resulting schema should be a valid schema, should follow the rules of the schema framework, and should validate the same instance documents as the original schema. Schema normalization is done in the schema framework 115 so that one structure is used consistently in a number of schemas rather than several structures used inconsistently in different schemas. That is, preferably, an Address schema that is normalized uses the same schema constructs and conventions as a Person schema. Normalization makes it much easier for developers to understand and develop code for schemas and instance documents based on schemas, to manage schemas, as well as to develop new schemas.
  • Modularity [0069]
  • The [0070] schema framework 115 preferably uses modular XML schemas as building blocks to build other, more complex schemas, messages, protocols, forms, and documents. XML schemas 200 and XML namespaces 220 provide an easier technical means of creating “modular” schemas as compared to creating one large schema to describe an XML format. Modularity in XML schemas allows certain parts of the schema 200 to be used in other schema definitions and applications. Reuse of a schema module allows developers to build objects around schema modules and reuse code. Reuse of code speeds development and encourages standardization.
  • Thus, preferably, the schemas in the [0071] schema framework 115 are modular. For example, a schema describing a Person may include import Address, Phone, and Email schemas. A schema describing a Vehicle may include a RegisteredOwner that may be a Person or an Organization. In each case, each schema preferably is a separate schema module. Complex schemas may have several modules.
  • The namespace prefix plus the name of the element, read together, should have a human-language meaning appropriate to the genre of the schema. For example, if the schema genre (e.g., namespace prefix) is “Person”, then the following prefix/element name combinations are preferable for the “Person” schema: Person: Name; Person: FirstName; Person: LastName; and Person: Address. [0072]
  • In the preferred embodiment, the root element of a schema may be imported and used in another schema in one of two ways: use in element declaration type attribute or use in element reference name attribute. Also preferably, only the “intended root element” of a schema or groups within a schema may be imported into another schema. That is, the entire “noun” or “object” is preferably used in the case of a root element or specified groups of elements. Other conventions are also within the scope of the present invention [0073]
  • Construction [0074]
  • Preferably, the [0075] schema framework 115 distinguishes the following: individual elements; base primitives; two-level primitives; multi-level primitives; protocols; messages; forms; and documents. An individual element is an XML element. An XML element can have a tag name such as “City.” An example of an XML element is <City>Sydney</City>.
  • A base primitive is an XML schema module that logically groups a number of elements. For example, an Address is a base primitive that may include the elements “Line,” “City,” “State,” “PostalCode,” and “Country.” In a preferred embodiment, per the normalization rules above, all schemas import an Attributes.xsd that includes global attributes. Thus, in a preferred embodiment, a Base Primitive, by definition, imports only an Attributes.xsd, but does not import any other schema. [0076]
  • A two-level primitive is a primitive constructed from more than one base primitive. For example, a “Person” may be constructed using the schema modules “Address”, “Phone”, and “Email.” Multi-level primitives (schema) are schema constructed from several base, two-level, or other multi-level primitives. For example, a “Vehicle” may include a registered owner that would be a “Person” or an “Organization.” The Person and Organization schemas are themselves two-level primitives; and therefore, Vehicle becomes a multi-level schema. These naming conventions are not necessary for the proper functioning of the schema framework, but serve to define a vocabulary that allows users to meaningfully describe interrelated sets of schema. [0077]
  • [0078] Messages 205 and protocols are constructed from elements and base, two-level, and multi-level primitives. There is a fine line between a protocol and a message. Indeed, the line may be so blurred that there is little distinction. In its purest form, a message is a transfer of data from one information system to another information system. A protocol is a message or a series of messages that invokes a subsequent response (e.g., an acknowledgement) or some other workflow. In practice, most messages require some sort of response, so a message is usually part of a protocol and could be considered one and the same.
  • Like messages, forms [0079] 210 are constructed from elements and base, two-level, and multi-level primitives. A form is preferably combined with a stylesheet so that it is easy for a human to read. “Forms” are distinguished from “documents” by the lack of free-form prose. Forms 210 consist of data elements and corresponding labels arranged in a logical and aesthetically pleasing document. Forms 210 may have “memo” fields for long answers to specific questions, but do not generally include long free-form prose, although other hybrid form-documents are also within the scope of the present invention. In the schema framework 115, additional rules can be specified for forms. For example, the schema framework 115 can use the following conventions to create special formats for forms 210:
  • The root element of a form is “[General Descriptive Word]”. [0080]
  • The first child of the root element is <Head>. [0081]
  • The second child of the root element is <Body>. [0082]
  • An optional third child of the root element is <Signature>. [0083]
  • In this example, <Head> is invisible metadata, <Body> is visible information on a form, and <Signature> is information for a digital signature. [0084]
  • In the preferred embodiment, the root element can optionally be created by a “container” schema located within the namespace of the schema that is the first child of the body of the form. For example: [0085]
  • http://www.xmllegal.org/Schema/Court/US/Georgia/Douglas/Juvenile/Form90/01/ [0086]
  • http://www.xmllegal.org/Schema/Court/US/Georgia/Douglas/Juvenile/Form90/01/Legal/ [0087]
  • The head element preferably includes metadata about the [0088] form 210 that would not typically be included in the styled representation of the form (i.e., it would not appear on the face of the form for the human reader). The head element preferably includes, but is not limited to, the following schemas: DocumentSummary; DocumentStatistics; DocumentVersion; DocumentProperties; and DocumentWorkflow. Other means of incorporating form metadata are also within the scope of the present invention. Preferably, the head element for all forms 210 is common or, at least, very similar. The stylesheet for the form 210 can be included within the form or can be a reference to a separate file. The body element's first, and preferably only, child includes the unique schema that make up the form.
  • [0089] Documents 215 are constructed from elements and base, two-level, and multi-level primitives. Like forms, a document 215 can be combined with a stylesheet so that it is easy for a human to read. Like forms, a document 215 can include a head, a body, and an optional signature. Unlike forms, documents 215 include free-form prose (or “unstructured text”) that requires special document-specific primitives. In the schema framework 115, the head, body, and signature elements can operate in the same way for both forms and documents. The body of a document, however, differs from the body of a form.
  • The body of an document preferably includes (1) frontmatter; (2) a body, or body elements, that include as descendants paragraphs, headings, outlines and optionally tables and objects (graphics, pictures, controls), and (3) backmatter. Paragraphs, headings, outlines, and tables include within them “flattened” inline vocabulary. [0090]
  • Frontmatter and backmatter usually include information that is structured like a form. For instance, a court document usually has a caption with the name of the court, the names of the parties, a civil action number, and a title. Likewise, a contract usually has a title, date, names of parties, and recitals. For each type of document, the information in the frontmatter and backmatter is preferably different, but all documents preferably have both frontmatter and backmatter, even if there is no content in the frontmatter or backmatter. Further, depending on the style and preferences of the author of the document, normal frontmatter information may appear in backmatter or visa versa. For instance, the dates and parties in a contract are interchangeably included either at the front of the document or at the back, depending on the preferences of the author of the document. [0091]
  • In between frontmatter and backmatter is preferably the body of the [0092] document 215. The body of the document can be prose and can include a mixture of arbitrarily ordered headings, outlines (sometimes called lists), tables, and paragraphs as desired by the author. The body may also include graphics, pictures, and other objects (such, for example, as ActiveX controls).
  • In addition to the head and body, forms [0093] 210 and documents 215 may optionally include an XML signature. An XML signature is information about a digital signature and should be distinguished from a “signature block.” A signature block is viewable signature information that is usually included in backmatter. A signature block may include the names of parties, titles, a typewritten signature (e.g., /Signature/) or a graphical signature (e.g., a bitmapped signature).
  • Vocabulary [0094]
  • Sprinkled randomly throughout the paragraphs, tables, and outlines in the document body is [0095] vocabulary 260. For instance, in a contract, there are names, price terms, conditions, and consideration. In transcripts there are questions, answers, witnesses, and exhibits. Different types of documents 220 have different types of vocabularies 260. Not all vocabularies are available to all types of documents. Vocabularies 260 are, therefore, modular based on individual schema.
  • In determining whether an [0096] element 250 is suitable as vocabulary 260, the schema framework 115 can distinguish between types of elements, including structural, data, and hybrid. A structural element is one that represents the structure of a document, such a frontmatter, body, backmatter, paragraph, heading, outline, or table. A data element is one that has some meaning to the human reader, such as, but not limited to, Name, Address, Time, Vehicle, and Consideration. Hybrid elements are elements that serve a structural purpose and are also data. For example, the title in a document is structural in that it conventionally comes at the top of the document, somewhere in frontmatter. Title is also data, in that a title of a book could be extracted and taken out of its structural context and still have meaning. Data elements and hybrid elements are preferably appropriate as vocabulary. Also preferably, pure structural elements are not appropriate as vocabulary. It should be noted that even data elements have structure when represented as XML. For example, an Address has within it (as children) address lines, city, state, postal code, and others.
  • [0097] Vocabulary 260 appears in the text portion of paragraphs, headings, outlines, and tables. The text element in each of these structures is preferably “mixed” content, meaning that text can be arbitrarily sprinkled with elements within the text element. A vocabulary group can be created in individual schemas. Each vocabulary group can be imported into a vocabulary schema. A vocabulary group in the vocabulary schema can be imported into an inline schema. The inline schema can create various groups of vocabulary and other elements that are imported into the text element of paragraph, outline, heading, and table.
  • The creation of a vocabulary group in individual schemas can provide a “flatting” of any structure used by data elements. Structure is preserved in the data elements that have content models, but by referencing children, the children are made available through the vocabulary group for inserting into the text. In the preferred embodiment, these elements are called “inserted vocabulary elements” (“IVE”). [0098]
  • [0099] Vocabulary 260 is preferably collected by importing and referencing one or more groups in a vocabulary schema. The vocabulary group can then be imported into the inline schema. The inline schema preferably includes other elements that are common to all documents.
  • The inline group can then be imported into each of the text elements of paragraph, heading, outline, and table. A simple reference to Inline:Inline makes available all of the vocabulary elements from all of the schema that are imported in the first step, which provides the ability to create either a very specific vocabulary for a specific document type or a very extensive vocabulary for a more general or complex document type. [0100]
  • Schema Maintenance, Discovery, and Documentation [0101]
  • The schemas can be maintained over time and published so that interested parties are able to discover schemas electronically. Preferably, the schemas are also documented. Preferably, the [0102] system 100 automatically maintains, discovers, and documents XML schema, in both a machine and human-readable format by publishing schema, documentation, data dictionaries, and indexed lists of schema in the schema repository. For example, a SchemaDescriptions.xsd file can be created such that it uses the namespace prefix “lml” (for “Legal Markup Language”).
  • The Schema Repository [0103]
  • Preferably, there is a [0104] primary schema repository 120 that stores all schemas. Additionally, mirrored and/or local schema repositories can hold all or a subset of all schemas. It is also possible that several schema repositories exist that are not full mirrors of each other but that combined hold all schema. A block diagram of an exemplary schema repository 120 is depicted in FIG. 3. In the preferred embodiment, schemas in the schema repository 120 are located as a web resource at a URI corresponding to the value of the schema's namespace with a filename that is the same as the intended root element and namespace prefix. Thus, the schema repository 120 can be accessed via HTTP, for example, although it is also possible to access schemas in repositories using other protocols and in other directory structures.
  • The [0105] schema repository 120 is a directory structure that allows any schema corresponding to any given arbitrary namespace or arbitrary instance document (which would have a namespace within it) to be discoverable and available. A schema is considered available even if it is password protected for security, privacy or other practical reasons.
  • The schema can also be available in mirrored or local repositories. Also preferably, the [0106] schema repository 120 can be portable from the local or mirrored schema repositories. Local schema repositories can be created, but preferably the schemas downloaded in the local schema repository match exactly the schemas in the schema repository 120. If changes are made locally to a non-frozen schema, then the schema can be uploaded to the schema repository 120, and the old schema can be archived. If the schemas in the local schema repository does not match exactly the schemas in the schema repository 120, then the system may potentially encounter inoperability problems.
  • Mirrored schema repositories in either HTTP or FTP or other publicly accessible space can be created. Preferably, the mirrored schema repository follows the same directory structure as the [0107] schema repository 120 beginning with the directory “Schema”. Also preferably, the mirrored schemas are exact replicas of corresponding schemas once a schema is frozen. If the schemas are not exact replicas, then the system 100 may potentially not work correctly because the system 100 preferably has distributed schema repositories. In the preferred embodiment, creating exact replicas of schemas in a mirrored repository can be done using digital signature technology, although other means are also within the scope of the present invention.
  • Optionally, the [0108] schema repository 120 can be password protected for access only by authorized users. Also, parts of the schema repository 120 can be password protected for access by different groups of users, while parts of the schema repository 120 can be open for semi-private or public consumption. Thus, “sub-repositories” can be created within the schema repository 120. Each of these sub-repositories can be password protected such that a select group of users is given access. Each sub-repository can also have its own SchemaDescriptions.XML file. When a user navigates to that part of the schema repository 120, the sub-repository would preferably have the same or similar look, feel, and functionality as the schema repository 120, but only those schemas in that part of the sub-repository would be available for searching and viewing. For example, the schema repository can have a first sub-repository 305A and a second sub-repository 305B. The first sub-repository 305A can have a security feature 310 that provides for password protection.
  • Also each sub-repository [0109] 305A and 305B can include a mailing list 315 and its own document repository 320. Both the mailing list 315 and the document repositories 320 can be used in a workgroup environment where multiple users, including users across organizations, can work on a set of schema and documentation at once.
  • Preferably, the [0110] schema repository 120 has a user interface 325 that allows the user to search the schema repository 120 and to view links to schemas in the repository. For example, the schema repository 120 can have a user interface 325 that lists the schema namespace prefix, or the “genre” of schema and its associated schema namespace as a web address. By clicking on the web address, the user can view 335 the schema. The list of schema can be in alphabetical order based on the namespace.
  • Also, there can be a search box/field that allows the user to search for a particular schema based on its namespace prefix or by elements, attributes, or types within schemas. For example, if the user searches the term “Email”, all of the schema that have the string “Email” will appear in the browser, and the other schema will be sorted out. Letters or partial words can also be searched. [0111]
  • In the [0112] schema repository 120, the user can also view a description 340 of each schema. For example, if the user clicks on the schema prefix, the user can view a description of the schema. The schema description can provide an update history for the schema, including the name of the author and whether the schema, in its history, has been copied from another namespace. This historical record can be useful for understanding when and why changes were made to the schema and can provide a means to trace the schema back in time. The schema description can also be available either within the schema or in an accompanying documented schema.
  • The user can also view [0113] schema documentation 345 in the schema repository 120. For example, the schema namespace is a hypertext link that can take the user to either the schema documentation or to the schema itself, if documentation is not available. Schema documentation can include, but is not limited to, the schema namespace, the schema repository 120, the schema prefix, the elements, attributes, types, and imported schema in the schema, and the change history. Also within the schema documentation, there is preferably a “Schema Repository Location” link that takes the user to the schema file itself. There can also be a reference to a data dictionary and to a compressed (zip) file that includes all subschema of a complex, multi-level schema. Preferably, all schema documentation includes the same or substantially similar information in the same or substantially similar format, even though the schema documentation can include a variety of information in a variety of formats.
  • Preferably, the schema documentation begins with a table of contents. Also preferably, the items in the table of contents are hypertext links that, when clicked, take the user to a description of the element, simpleType, imported schema, or other construct used in the schema. Preferably, each definition has a link that can take the user back to the table of contents. The table of contents also includes a list of imported schema. Imported schema are external, not internal, and the schema themselves can contain elements, attributes, simpletypes, imported schema, and other constructs. [0114]
  • Through the user interface, the user can also download [0115] 350 schema packages and view 355 data dictionaries. The data dictionaries can be created from the schema and can provide a flat list of each term in a single schema or in a set of schema along with a link from the element, attribute, or simpleType name to the definition in the online schema documentation as well as the data type and a link to the definition of the data type. The schema packages can be compressed (e.g., zipped) files that preserve the hierarchical directory structure and include all schema that are in a set of schemas. Thus, the schema packages provide an easy way for a user to download the entire set of schema and unzip it into a local repository while preserving the directory structure.
  • The [0116] schema repository 120 can be periodically updated by using a crawler 360. The crawler 360 is a tool that allows an administrator to literally “crawl” the schema repository 120 and update the SchemaDescriptionXML files, which are used to generate the interfaces and provide the search capability described earlier in this section. For example, the crawler 360 can be a web-based tool.
  • The Schema Generator [0117]
  • Preferably, the [0118] schema generator 125 is an application that provides an interface 405 for creating, editing, and building normalized schema. To create 410 schema, the schema generator can preferably import 415 other schema or import 420 data dictionaries. Also preferably, the schema generator 125 can provide a user interface 420 that allows a user to manage schema, schema documentation and schema data dictionaries. Preferably, the schema generator 125 can do this by allowing a user to view schema 425; backup schema 430; copy schema and subschema 435; delete schema 440; document and annotate schema 445; and validate and normalize schema 450. Additionally, the user can create schema documentation 455; create data dictionaries 460; package schema and documentation 465; publish 470 schema, schema documentation, schema data dictionaries, and schema packages into a schema repository 120; and freeze schema 470.
  • To view schema, the [0119] user interface 405 can include a treeview and a schema properties window. In the treeview, there can be, for example, four tabs, “Repository,” “Schema,” “Imported Schema,” and “Copy.” Preferably, the schema properties window shows the properties of the last opened schema. In an exemplary embodiment, the Repository tab opens by default. On the Repository tab, the schema generator 125 can provide an interface into the local schema repository 120.
  • To open or view a [0120] schema 425, the user finds the schema in the schema repository 120 by preferably using the directory menu. Then, the user can select the schema file from the file menu. The user can open the schema in various applications, including but not limited to, the schema generator window, Internet Explorer, Notepad, or XML Spy.
  • Schema can also be documented [0121] 430 in the Repository tab. For example, a document button can be located on the Repository tab so that when the user clicks the button, the schema can be automatically documented. The user can add prose documentation to the schema either by editing the schema as a text file in another application, such as, for example, in Notepad or XML Spy, or the user can add prose documentation through the schema generator interface.
  • Also within the [0122] schema generator 125 is a feature to manipulate the schema 420. To validate and normalize schema 435, there can be two additional buttons: “Validate” and “Normalize.” Clicking on the Validate button validates the schema by using, for example, Microsoft MSXML 4.0 parser. If the schema is not valid, the schema generator 125 can provide a message that states (a) that the schema is not valid with an error message from MSXML; (b) whether or not the schema is well-formed; (c) whether or not the schema namespace is a valid namespace; and (d) whether, based on the namespace, the schema is located in a correct place in the repository (if it is not located in a correct place, the schema may not import other schemas properly and may be invalid as a result, but otherwise be a good schema).
  • Clicking on the Normalize button will normalize the schema based on the schema framework's practices and conventions. Because the schema is altered during this processes and potentially changed, option boxes are preferably used to allow the user to the instruct the [0123] schema generator 125 whether or not to (a) back up the original schema; (b) over write the original schema; and/or (c) document the new schema with an update showing the schema has been normalized.
  • Also preferably, the [0124] schema generator 125 can include a function to automatically normalize schema by using a normalization algorithm. In the preferred embodiment, the algorithm functions such that an input schema is transformed into another representation and then transformed from that new representation into a schema. The resulting schema should be a valid schema, should follow the rules of the schema framework 115, and should validate the same instance documents as the original schema.
  • It is possible that the schema is a valid schema, such as a valid W3C schema, but not a normalized schema. In this case, the [0125] schema generator 125 attempts to fix the schema and put it into a normalized state. If the schema generator 125 cannot do this, it provides some explanation. The user has the option of normalizing the schema without saving it or normalizing the schema and saving it.
  • Schema can also be backed-up [0126] 440 in the schema generator 125. For example, a “Backup” button can exist on the Repository tab such that when the user clicks the Backup button, the schema is automatically backed-up in a file that preferably includes the date and time.
  • Because the schema are preferably “frozen” after an instance document based on the schema has been published, it is useful to be able to copy [0127] schema 445 or groups of schema from one place in the schema repository 120 to another place. Whether one schema or several schemas are copied, the schema generator 125 preferably copies the schema, changes the namespaces in the schema as well as any imported namespaces, and then saves the schema in its new location. The user can also specify where the copied schemas are to be stored. Groups of schemas can also be copied in substantially the same manner. Preferably, there is “Copy Single Button” and a “Copy All” button that the user can click to copy a schema and to copy all the schemas.
  • This ability to copy schemas is especially useful for forms and documents that change slightly from year-to-year or at other times. An exact replica of the form can be copied, and then slightly modified in its new namespace. Because the form of the original schemas are uniquely identified by their namespace and the schemas preferably remain “frozen” in their places in the [0128] schema repository 120, it is possible to validate legacy forms and documents created with the original schema, while upgrading to a new form.
  • A schema that is open in the [0129] schema generator 125 can be edited 450. Clicking on the Schema tab can bring up a sliding tab interface that shows elements, children, simpleTypes, and attributes. Elements, children, simpleTypes, and attributes can be added, edited, and/or deleted. As new schema are opened in the application, the schema generator 125 stores element names, attribute names, simpleType names, documentation (if available) and other information in a Dictionary. If the schema is an XML schema, the vocabulary is associated with a namespace, so that there is a history of where the term originated. Vocabulary from schemas that are not normalized schemas can also be imported into the Dictionary.
  • Most complex schema, such as messages, forms, and documents use many of the same “building block” schemas. It is often convenient to import “building blocks” or “primitives” from the [0130] schema repository 120 and use those schemas as they are or with slight revision. Similar to the Dictionary, the schema generator 125 has the ability to provide a pick list of existing schema and import user-selected schema directly from the schema repository 120 into a schema as it is being built. For example, if a form includes a “Witness”, it is possible to (a) create an element named “Witness”, (b) import the “Person” schema (which imports into it the Address, Email, and Phone schemas), and then (c) create the Witness type as “Person”.
  • The pick list of schemas is created from a SchemaDescriptions.XML file generated by the crawler. Because the [0131] schema repository 120 can be segregated and password protected and can contain multiple SchemaDescription.XML files, users of the schema generator 125 can be given limited access to parts of the schema repository 120 for security, privacy, or other reasons. Once schema have been generated, copied, edited, normalized, and documented, both the schema and documentation can be uploaded into the schema repository 120. This can be accomplished by clicking on the schema and the documentation in the Repository tab and clicking the Upload button.
  • Also within the [0132] user interface 405, the user can create schema documentation 455, create data dictionaries 460, package schema and documentation 465, publish schema 470, and freeze schema 475.
  • The Code Generator [0133]
  • Preferably, the [0134] code generator 130 has a user interface 505 which allows the user to generates code 510, generate a test project 515, and generate code documentation 520 from schema that, when compiled, provides a DOM-based (i.e., document object module based) application program interface (“API”) to the schema. The code generator 130 generates code (or an API) that allows a programmer (or user) to easily output XML instance documents 525 that validate against the schema. The code-generated code can also consume valid XML instance documents and provide the data in the document to other applications from its API. Preferably, the API can save the XML instance document in the XML document repository 160 in a consistent manner.
  • The code-generated code can be [0135] source code 530 or compiled code 535, for example, and can be used in other applications, such as the editor, development kits, and applications created by third parties. The test project can use the code-generated code and has in itself generated code. The code generated code and the test projects output instance documents. Instance documents created by code-generated code (or the test project) can be stored in the document repository and used as input for the wizard, editor, viewer, and e-filing applications.
  • Preferably, the [0136] code generator 130 has a user interface 505 that is simple to use. For example, the user can select a normalized schema from the schema repository 120, can select an output location, and can select various properties, such as to generate only code or to generate source code or compiled code. Then, the user can click a button to generate code. The code generated is a set of classes that, when run or compiled, provide a very quick and easy way of creating XML instance documents that validate against the schema, as compared to manually creating such code, which would require substantial time. Thus, the resulting code can be used very easily within other code projects to output XML and consume XML instance documents, and to make data within the documents available through the API.
  • Preferably, the [0137] code generator 130 also creates a test project that uses the code-generated source code 530 or compiled code 535 that outputs an XML instance document with dummy data. The resulting test project can be used to output XML with little user intervention except mapping data values to the code-generated API and assuring the logic of the data is consistent with the rules of the schema.
  • Preferably, the [0138] code generator 130 can also send XML instance documents over the Internet or other network using one of several standard protocols, such as HTTP, FTP, SMTP, or SOAP.
  • The output [0139] XML instance document 525 can be compatible with the indexer and viewer 150 so that complex searches and reports can be generated from a repository of XML instance documents. The API allows a user to output “Simple XML” or “Complex XML.” Both Simple XML and Complex XML preferably validates against the schema used to generate the code that generated the instance document. Specifying “Simple XML” preferably generates XML using locally declared namespaces and no namespace prefixes. Specifying “Complex XML” preferably generates XML using either globally or locally declared namespaces and uses namespace prefixes.
  • The Wizard [0140]
  • The [0141] wizard 140 is designed to allow users to quickly and simply enter data into a user interface 605 (that can be dynamically created by the wizard), create and edit XML messages and forms 610, create and edit templates 615, and submit completed messages and forms to electronic filing applications or other custom applications 620. Users of the wizard 140 need little or no knowledge of XML or other underlying technologies. Users simply type data into a user interfaces to create the XML message or form. When the form is completed, it is preferably saved in a document repository 160.
  • Preferably, the [0142] wizard 140 is simple to use, supports multiple forms and messages, supports submission of the forms and messages to electronic filing applications or other custom applications for processing of the XML data, and supports automatic storage of XML forms and messages in the document repository. Forms and messages can be created from any schema following the normalization rules of messages or forms. Forms that have stylesheets can be printed directly from the wizard 140. Forms can be viewed in html format, as for example in Internet Explorer or Netscape, in an Adobe PDF format, in a Rich Text Format (“RTF”), or in Scalable Vector Graphic (“SVG”) format. Previously created documents can be opened, edited, and resent to electronic filing applications or other custom applications. Also, the wizard 140 can be configurable to automatically distribute completed forms to multiple HTTP, FTP, or SMTP addresses.
  • To reduce data entry into the forms, the user can create [0143] multiple templates 615 from within the wizard 140 to hold frequently used data; the user can use the internal copy button to copy and reuse information previously typed into the form into multiple other locations within the form; or the user can use the external copy button to copy and reuse information from outside data sources. Also, the wizard 140 can employ “perfect fit” technology to provide as much or as little space on the form for data of variable length.
  • The [0144] wizard 140 can work with both encrypted and unencrypted schema. Use of encrypted schema provides additional data security and integrity. The wizard 140 is also compatible with the viewer 150 for complex searches of the document repositories.
  • The [0145] wizard 140 provides users with a simple way to enter data into XML forms. “Perfect Fit” form technology provides as much or as little space as needed on the form for data of variable length. Perfect Fit technology works by combining the XML data and a stylesheet to dynamically create the visible form. Whether there is one address or five, all of the addresses will fit the space on the form. This is an improvement over paper forms and other electronic forms where a fixed space is provided for variable length data and blanks must be filled. For example, if a traditional form provides space for four data items, but the user types in only one of those data items, then there is extra space on the form for three items. Similarly, if the user has five items and there is only space for four, then the traditional form does not have enough room and the user either has to type in the form margin or some other free space, or the user has to add an addendum to the form.
  • Some forms can automatically be installed when the [0146] wizard 140 is installed. Other forms can be downloaded from the schema repository 120, or created by a user or an administrator using the schema generator 125 or another XML Schema development tool. Preferably, the system 100 is configured to allow only the administrator to add forms to the wizard 140, although it is within the scope of this invention to allow any user of the wizard 140 the ability to add and remove forms from the wizard 140.
  • When forms are added to the system, the user can select “Simple XML” or “Complex XML” as the “Output format.” Both Simple XML and Complex XML can validate against the schema used to generate the wizard interfaces used for data entry. Specifying “Simple XML” preferably generates XML using locally declared namespaces and no namespace prefixes. Specifying “Complex XML” preferably generates XML using either globally or locally declared namespaces and will use namespace prefixes. The output location is a location in the document repository where the resulting XML instance document can be saved. The user can select any output location on any local or network drive for the document repository. Different forms can be saved in different document repositories, if desired. [0147]
  • Each form can be stored as a file in the [0148] document repository 160, and then subsequently accessed by a user or an application, by its unique form name, which preferably identifies the content of the form. For example, a form for a police complaint in New Hampshire can have the form name: “New Hampshire Police Complaint”. Preferably, characters that are not permissible in filenames, such as colons or slashes, should not be used. Stylesheets can also be applied to a form. The use of a stylesheet is optional, but the stylesheet will enable the document to be viewed in a human readable format. The form can also be identified by opening it and determining its namespace.
  • In the [0149] wizard 140, the user can select either a new document or a new template. Preferably, a document is the default when the user first starts the application, and preferably, the application will remember the last selection each time the wizard 140 restarts.
  • In the document, the user can choose which form to open by selecting the form name from the list of available forms. Preferably, when “New Document” is selected, a form will open with a data entry screen on top. The data entry interface is generated dynamically from the schema. The form in the background is dynamically generated from the schema and the stylesheet. The [0150] wizard 140 can dynamically generate new interfaces based on an arbitrary XML schema, provided the schema is normalized based on the rules of the schema framework.
  • The [0151] wizard 140 understands the form based on the namespace of the XML schema selected in the configuration. Schemas imported are understood as well, as their namespaces will be present when imported. The wizard configuration file allows the administrator to select a schema and a stylesheet and a form name for the form. The form name appears in the new document window. In the background, the form is uniquely identified by its namespace. As a result, the wizard 140 can automatically generate interfaces appropriate to the form based on the XML schema. Likewise, the stylesheet is created especially for data created by the XML schema, ensuring that it will work properly to render the data input and resulting XML.
  • Completed or partially completed forms can also be opened in the [0152] wizard 140. Alternatively, forms can be opened directly from the document repository or from within the viewer. When opened, data in a saved form automatically populates the data entry screens where the data can be edited or augmented. Because the XML document's namespace is preferably present in the XML document when it is saved, the wizard 140 can read the namespace and locate the appropriate schema in the schema repository 120. However, if the namespace is not present in the XML document (or if the namespace is incorrect or if the schema at the end of the namespaces has changed), then the wizard 140 may not work properly and the system 100 can fail. Thus, the wizard 140 can generate interfaces appropriate to the XML form and can populate the XML data automatically into the interfaces.
  • Preferably, schema included in the wizard installation files are encrypted and packaged so that they cannot be easily altered. Thus, schema that are distributed are “frozen” from a technical perspective so they are more difficult to alter. [0153]
  • The user interface for each form can differ depending on the schema and stylesheet used. The [0154] wizard 140 can use multiple screens and sub-screens to navigate through the data entry process. These screens correspond to the hierarchy of the XML schema. The user is able to type in as little or as much data as is necessary, as defined by the schema, for a particular form. The user can enter data into a field by typing directly into that field. Some fields, for example “Create Date” or “Create Time,” open a new pop up box where the user can enter data specific to that field. There are a number of XML schema constructs that the wizard 140 recognizes to create special controls in the interface. For example, combo boxes, or drop down lists, can be created based on specific schema constructs.
  • In the preferred embodiment, common controls (for the specific platform, programming language, or operating system, such as but not limited to, Windows, Linux, and Java) can be created based on the data type or construct in the schema. For example, simpleTypes with enumerations can create drop down boxes with lists. Strings (xsd:string) or integers (xsd:integer) with maxLength and minLength can create a text box that allows specified length in characters. A simpleType named “Memo” can create a large, multi-line text box. Special constructs can exist for font picker controls, radio buttons, check boxes, date and time pickers, and other controls. [0155]
  • The labels in the [0156] wizard 140 interface are preferably dynamically generated from element and attribute names. Preferably, element and attribute names use no spaces. As a result, the wizard 140 searches for combinations of lower case and uppercase letters (e.g., “tN” in “FirstName”) and adds a space in between the lower case and upper case letter to create a dynamically generated label. Other ways of generating labels for interfaces based on the schema are also within the scope of the present invention
  • Thus, users can create any arbitrary schema, using for example the [0157] schema generator 125 and have the schema and its vocabulary appear in and create data entry screens in the wizard 140. For example, the wizard 140 can automatically generate foreign language interfaces simply by using schema that use foreign words for element and attribute names.
  • Within the user interface, the user can navigate through the fields by using the mouse or the tab key and keystrokes, for example. “Previous” and “Next” buttons can be used to move between screens. Also, the user can navigate through main screens and sub-screens. Sub-screens are screens within screens. The relationship among screens reflects the Parent/Child/Sibling relationships as defined by the XML schema. As a result, it can be said that there are parent screens, children screens, which are screens on different levels, and sibling screens, which are screens on the same level. Parent screens may have multiple children screens. A child screen may itself be a parent screen and may have children. [0158]
  • “Choice screens” can be used to enable the user to choose an item from among a discrete number of items defined by the schema. For example, radio buttons can be used to allow the user to make a choice among the items. Once the user chooses an item, then the user can input data. Once the user presses a Done button, the text beside the radio button previously chosen will preferably change to reflect that data has been inputted. [0159]
  • The “Done” button can be used to save the data entered on the screen or sub-screen. If the user is in a sub-screen, the done button will preferably return the user to a main screen or parent screen. [0160]
  • A “Cancel” button can be used to discard all new data entry for that particular screen and close the screen. If the user is working on a sub-screen (e.g., a child screen) and presses cancel, the data entered on that screen will preferably be cleared and the user will return to the screen's parent screen. If the user presses cancel on a main screen, the entire form preferably will be closed and all previously entered data will be discarded. Also preferably, if the user is editing data previously typed, the cancel button will not discard the data previously typed, but new data will not be saved. [0161]
  • A “Finish” button can be used to save all of the data entered as an XML file in the document repository. The location of the document repository is set in the wizard configuration. The Finish button also shows the user a finished version of the form the user has just completed. Additionally, the Finish button can be configured to email the form as an attachment to the email addresses in the configuration and/or to call an external application, such as an electronic filing application, that can receive and process the form. [0162]
  • An “EFiling” button can be used to electronically file the form through the e-file module. Other buttons can be added to the user interface. The other buttons can include, for example, copy, delete, save, print preview, print, email, new form, all of which are generally known in the art. Also, arrow buttons can be used to add additional data in a field. Additionally, buttons can be defined within the [0163] wizard 140. For example, one button can be labeled “Create Complaint”, such that when it is clicked, a screen pops up for data entry. Alternately, a complaint form can appear in the user interface.
  • The user of the [0164] wizard 140 can create and store various templates within the wizard 140. Templates can be useful when the user wishes to store frequently used data in a form, so the user does not have to type the same information repeatedly. For example, if the user has a form where the user always uses the user's address as the return address, then the user could create a template with the user's address stored in it. The template can then be available to the user when the user creates a new document, which saves the user from typing in the address repeatedly. Thus, it can be much quicker to create and use templates for common data. Combined with the copy button, duplicate data entry is reduced or eliminated, and the quality of data is high because mistakes are avoided when retyping is avoided.
  • The wizard can receive as input an XML form or message created by code-generated code. For example, a developer can use the API from code-generated code to put information from a backend database into an XML instance document based on a schema. The XML instance document created from the code-generated code can then be opened in the wizard and edited as if the XML instance document were created in the wizard. [0165]
  • The Editor [0166]
  • The [0167] editor 145 is a word processor that can be used for editing the documents defined by the schema framework 115. Even a user unfamiliar with XML and the underlying technology can quickly and easily operate the editor 145. Preferably, the editor 145 automatically configures itself based on the document type opened. Also preferably, the editor 145 uses the wizard 140 internally to allow the user to edit data inside the document without seeing the XML tags within the document. The editor 145 has an authoring interface 705 that preferably uses “colorization” 710, “tool tips” 715, and “keystrokes” 720 to show the author visually where data elements and document parts are located within the document, rather than including tags within the text. This provides a what-you-see-is-what-you-get (“WYSIWIG”) XML authoring environment. Additionally, the user can insert new vocabulary into the XML document. Moreover, the editor 145 is preferably compatible with the wizard 140 and can be used in frontmatter, backmatter, and within paragraphs, outlines, tables, and headings in the body. The editor can include an electronic filing button that passes documents to an electronic filing application.
  • Upon launching the [0168] editor 145, the user can create a new document, edit a document, or create a document from a template. For example, the user can search the document repository and open a document for editing. Preferably, the user interface of the editor 145 has the look and feel of standard word processing software.
  • However, unlike traditional word processing software, the top and bottom portions of the document (i.e., frontmatter and backmatter) are preferably static forms. For example, if a user is typing information into the document frontmatter, and the user types the enter key or the spacebar key within a vocabulary item, the wizard tool will pop up and provide the user an interface in which to type the information. Thus, unlike other word processing software, the enter key does not produce a line feed within frontmatter, backmatter, or a vocabulary item. However, when the user edits prose that is not vocabulary within paragraphs, outlines, and tables within the body of the document and types the enter key, a line feed is created. [0169]
  • For example, document formats such as MS Word and Word Perfect create a completely free-flowing document format where line feeds are inserted whenever the enter key is used, creating a very flexible authoring environment with no fixed content. Document formats such as Adobe Portable Document Format (PDF) are very static, rigid formats that allow a user to type data into blanks, but do not allow the free-form editing environment of a word processor. The editor uses a document format (defined by the schema framework) that tells the application that some parts of the document are fixed and not appropriate for line feeds, while other parts of the document are not fixed and are appropriate for free-form editing such as editing in a word processor. [0170]
  • Preferably, the top and bottom of the document are authored much like a document in the [0171] wizard 140 except that in addition to the wizard interface, it is possible to type directly into the document, which is similar to using a word processor or typing into a fill-in-the-blank electronic form.
  • To enter data into the vocabulary in the document, the user can type into the interface, which is similar to using a word process or typing into a fill-in-the-blank electronic form, or the user places the cursor into a vocabulary field and clicks the enter key or the spacebar key. When the user does this, the [0172] wizard 140 launches. The user can also right click on the mouse to insert new vocabulary or edit existing vocabulary with the wizard 140. Once the wizard 140 opens, the user can then type in information to fill the vocabulary. Some vocabulary items, for example “Name of Child” or “Address”, can open a pop up box where the user can enter data specific to that field. Other items, such as “Date” fields, can open a pop up box that allows the user to choose a date using a date picker control. Also, it should be noted that some vocabulary items can be edited, while other vocabulary items can remain unedited.
  • Alternately, the user can select a vocabulary field with the mouse (for example, by left clicking the field) and then can type directly into the field. The vocabulary placeholder (e.g. “[Enter Name of Child]”) preferably disappears, and the text the user types appears in its place. [0173]
  • Preferably, when the user moves the mouse over the text, or when the cursor is otherwise placed in the text, the area where the user can enter text changes color, which is a technique known as [0174] colorization 710. As the user moves the mouse over vocabulary, different colors indicate where pieces or chunks of vocabulary, clauses, and paragraphs exist in the document. In addition, a tool tip 715 can appear over the vocabulary, clause, or paragraph, which conveys to the user the information is within the document.
  • The user can also use the arrow keys to move between the different fields, vocabulary, clauses, and paragraphs (“nodes”). In the preferred embodiment, keystrokes [0175] 720 are used in the user interface to move between the different nodes. For example, if the cursor is in front of the last character at the end of the first node, and the user clicks the right arrow key, the cursor will move one character to the end of the first node, adjacent to the second node. The first node will remain colored. When the user clicks the right arrow key again, the first node will loose color and the second node will become colored, although the cursor will not move in the user interface. The color signifies to the user that the content in the first node is no longer editable but that the content in the second node is editable. If the user clicks the right arrow key a third time, then the cursor will move one character to the right. Thus, two keystrokes of the arrow keys allow the user to visually move between adjacent nodes (e.g., three right arrow key strokes result in only two movements of the cursor when the cursor is at the boundary of a node). This behavior is unlike other word processors. Combined with colorization, this behavior enables the editor's WYSIWYG feature, because unlike other word processors, viewable markers are not required within the editable document.
  • When the user left clicks on a vocabulary place holder, for example “[Type County]”, and then types the text, the vocabulary placeholder disappears. Vocabulary placeholders preferably use [brackets] and the word “Type” to indicate a blank vocabulary item within the document, which can be edited, although other textual cues could be used. Once the user has entered information into the vocabulary item, the placeholder disappears. If the user deletes all of the text in a vocabulary item, by using the delete or backspace key, the vocabulary place holder preferably reappears. [0176]
  • If the user has selected a vocabulary date field (i.e. “[Type Date]”) within a heading, paragraph, or outline, a date wizard can be used to enter the date. The date wizard can provide drop down lists of the day, month, and year, and then automatically create a date field in the XML document. [0177]
  • Similar to the [0178] wizard 140 discussed herein, the editor 145 can also have a plurality of buttons, including, but not limited to, next, previous, cancel, done, and finish, to move between screens and to save, cancel, or manipulate data therein.
  • Also within the [0179] editor 145, the user can open, for example, a notepad application. The notepad has the look and feel of standard word processing software, with various editing tools, toolbars, and pop-up menus from the right click of the mouse. Within the notepad, the user can create a new XML document. Within the document, the user can enter paragraph text by, for example, clicking on the “[Type paragraph]” field on the screen, and typing into it. Also, the user can select a feature to convert the paragraphs typed into an outline format. An outline is an indented and numbered area of text (similar to bulleted lists in a word processor). Outlines can also be created directly within notepad.
  • In addition to adding paragraph text, the user can add headings to the paragraphs. The user can select the heading option from the toolbar or the pop-up menu from the right click of the mouse to generate a new heading. Headings can be automatically numbered within the XML document. [0180]
  • The [0181] editor 145 has the ability to add and save “most used clauses” that can be automatically inserted into the XML document, including into the paragraphs, headings, and outlines. Thus, creating documents is quick and easy and reduces the number of errors by minimizing the data entry involved in re-keying. For example, a pop-up window or a menu can be used to store the “most used clauses” that can later be accessed by the user by opening the window or menu.
  • The editor can configure itself to any document that follows the rules of the [0182] schema framework 115. Preferably, buttons will appear on a left-aligned toolbar that correspond to structural elements in the body of the document. For example, in a transcript, if question and answer structural elements are defined by the schema in a document's body, then buttons that allow the user to insert a question and answer will preferably appear on the left-aligned toolbar. Likewise, in a contract, if a clause structural element is defined by the schema, then a button that allows the user to insert a clause will preferably appear on the left-aligned toolbar.
  • The Document Repository [0183]
  • Preferably, the [0184] document repository 160 is a directory structure that can store the various documents and forms. Also preferably, the document repository 160 can be indexed and searched by the indexer and viewer 150. Preferably, the directory structure is set of hierarchical directories and subdirectories that are organized by a main directory determined by a user, with the first level of subdirectories named based on the year in which an XML instance document is created, such as “2003” or “2004”; the second level of subdirectories named based on the numerical month in which the XML instance document is created, such as “01” for January or “02” for February; and the third level of subdirectories named based on the day in which the XML instance document is created. For example, an instance document created on March 7th, 2004, can be saved in a directory such as “MainDirectory/2004/03/03/.”
  • The Viewer and Indexer [0185]
  • The viewer and [0186] indexer 150 can search the document repository 160 based on any of a variety of search parameters. The viewer and indexer 150 can search any field of each document in the document repository 160. Also preferably, the viewer and indexer 150 can automatically configure itself based on the rules of the schema framework. For example, the viewer and indexer 150 can automatically configure itself based on an input schema to create a search term or a plurality of search terms that can be used to search the document repository 160 (and/or mirrored and local repositories) containing documents and forms created based on the same input schema. If used with the e-filing module 155, electronic filings and confirmations are also saved in the document repository 160 and are easily and fully searchable using the viewer 150.
  • The E-Filing Module [0187]
  • The e-filing module allows the user of the [0188] system 100 to electronically file the form or document with an electronic filing service provider. The module allows the user to send one or more documents to one or more recipients in a manner similar to using electronic mail.
  • While the invention has been shown and described in preferred forms, it will be apparent to those skilled in the art that many modifications, additions, and deletions can be made therein. These and other changes can be made without departing from the spirit and scope of the invention as set forth in the following claims. [0189]

Claims (23)

What is claimed is:
1. A mark up language schema stored in a directory tree memory structure, the schema having a schema namespace associated therewith, the schema namespace including a category identifier that identifies a category to which the schema relates, and wherein the category identifier provides information about where the schema associated with the namespace is stored in the directory tree memory structure.
2. The schema of claim 1, wherein the category identifier identifies a genre to which the schema associated with the namespace relates.
3. The schema namespace of claim 1, wherein the category identifier identifies a geographical location.
4. The schema of claim 1, wherein the category identifier identifies a genre to which the schema associated with the namespace relates and a geographical location.
5. The schema namespace of claim 4, wherein the category identifier identifies at least a legal jurisdiction.
6. The schema namespace of claim 4, wherein the category identifier identifies at least an organization.
7. The schema namespace of claim 4, wherein the category identifier identifies at least a type of document or form.
8. The schema namespace of claim 4, wherein the category identifier identifies at least a person.
9. The schema namespace of claim 4, wherein the category identifier identifies at least an address.
10. The schema namespace of claim 1, wherein if an instance document associated with the schema namespace is published, the category identifier used in namespaces will be identical for all namespaces created after publication that include the category identifier.
11. The schema namespace of claim 1, wherein the namespace further includes a content type identifier that identifies a type of content associated with the mark up language schema.
12. The schema namespace of claim 1, wherein the namespace further includes a version identifier that identifies a version to which the mark up language schema corresponds.
13. The schema namespace of claim 1, wherein the namespace further includes a uniform resource identifier (URI) that identifies a web resource associated with the schema.
14. A method for creating mark up language schema, the method comprising:
creating a schema namespace to identify the schema, the schema namespace including a category identifier that identifies a category to which the schema relates, the category identifier providing information about where the schema associated with the namespace is stored in a directory tree memory structure.
15. The method of claim 14, wherein the category identifier is selected from the group comprising a geographical region, a legal jurisdiction, an organization, an institution, an industry, a department, an agency, a type of document, a type of form, a person, an address, a location and a place.
16. The method of claim 14, further comprising:
publishing the schema associated with the schema namespace, wherein after an instance document has been published, the schema associated with the namespace cannot be changed.
17. The method of claim 14, wherein the namespace further includes a version identifier that identifies a version to which the mark up language schema corresponds.
18. The method of claim 17, wherein the namespace further is a uniform resource identifier (URI).
19. An apparatus for determining whether a mark up language schema is normalized, the apparatus comprising:
logic configured to receive a schema and to determine whether the schema conforms with a schema framework rule set and if a determination is made that the schema does not conform with one or more rules, then conforming the schema to the one or more rules.
20. The apparatus of claim 19, wherein the determination made by the logic includes determining whether a namespace associated with the schema conforms to one or more rules of the rule set.
21. The apparatus of claim 19, wherein the logic determines whether the namespace conforms to one or more rules of the rule set by determining whether the namespace includes a uniform resource identifier (URI) and a category identifier, wherein the category identifier identifies a genre to which the schema associated with the namespace relates.
22. The apparatus of claim 19, wherein the category identifier also identifies a geographical location.
23. The apparatus of claim 20, wherein the logic also determines whether the namespace includes a valid version number.
US10/865,519 2003-06-11 2004-06-10 Schema framework and a method and apparatus for normalizing schema Expired - Lifetime US7366729B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/865,519 US7366729B2 (en) 2003-06-11 2004-06-10 Schema framework and a method and apparatus for normalizing schema
US11/930,615 US20080059518A1 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema
US11/930,569 US8688747B2 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema
US12/797,584 US20100251097A1 (en) 2003-06-11 2010-06-09 Schema framework and a method and apparatus for normalizing schema

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US47753003P 2003-06-11 2003-06-11
US10/865,519 US7366729B2 (en) 2003-06-11 2004-06-10 Schema framework and a method and apparatus for normalizing schema

Related Child Applications (2)

Application Number Title Priority Date Filing Date
US11/930,615 Division US20080059518A1 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema
US11/930,569 Division US8688747B2 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema

Publications (2)

Publication Number Publication Date
US20040254953A1 true US20040254953A1 (en) 2004-12-16
US7366729B2 US7366729B2 (en) 2008-04-29

Family

ID=33551726

Family Applications (7)

Application Number Title Priority Date Filing Date
US10/865,399 Active 2028-08-15 US8127224B2 (en) 2003-06-11 2004-06-10 System for creating and editing mark up language forms and documents
US10/865,529 Expired - Lifetime US7308458B2 (en) 2003-06-11 2004-06-10 System for normalizing and archiving schemas
US10/865,519 Expired - Lifetime US7366729B2 (en) 2003-06-11 2004-06-10 Schema framework and a method and apparatus for normalizing schema
US11/930,615 Abandoned US20080059518A1 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema
US11/930,569 Active 2026-02-23 US8688747B2 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema
US12/797,584 Abandoned US20100251097A1 (en) 2003-06-11 2010-06-09 Schema framework and a method and apparatus for normalizing schema
US13/406,128 Active 2026-12-24 US9256698B2 (en) 2003-06-11 2012-02-27 System for creating and editing mark up language forms and documents

Family Applications Before (2)

Application Number Title Priority Date Filing Date
US10/865,399 Active 2028-08-15 US8127224B2 (en) 2003-06-11 2004-06-10 System for creating and editing mark up language forms and documents
US10/865,529 Expired - Lifetime US7308458B2 (en) 2003-06-11 2004-06-10 System for normalizing and archiving schemas

Family Applications After (4)

Application Number Title Priority Date Filing Date
US11/930,615 Abandoned US20080059518A1 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema
US11/930,569 Active 2026-02-23 US8688747B2 (en) 2003-06-11 2007-10-31 Schema framework and method and apparatus for normalizing schema
US12/797,584 Abandoned US20100251097A1 (en) 2003-06-11 2010-06-09 Schema framework and a method and apparatus for normalizing schema
US13/406,128 Active 2026-12-24 US9256698B2 (en) 2003-06-11 2012-02-27 System for creating and editing mark up language forms and documents

Country Status (2)

Country Link
US (7) US8127224B2 (en)
WO (1) WO2004112301A2 (en)

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040104939A1 (en) * 2002-11-22 2004-06-03 Enterasys Networks, Inc. Method and apparatus for navigating through a task on a computer
US20070028160A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Re-use wizard
US20080072160A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Electronic data interchange transaction set definition based instance editing
US20080071817A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Electronic data interchange (edi) data dictionary management and versioning system
US20080071806A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Difference analysis for electronic data interchange (edi) data dictionary
US20080126385A1 (en) * 2006-09-19 2008-05-29 Microsoft Corporation Intelligent batching of electronic data interchange messages
US20080126386A1 (en) * 2006-09-20 2008-05-29 Microsoft Corporation Translation of electronic data interchange messages to extensible markup language representation(s)
US20080168081A1 (en) * 2007-01-09 2008-07-10 Microsoft Corporation Extensible schemas and party configurations for edi document generation or validation
US20080168109A1 (en) * 2007-01-09 2008-07-10 Microsoft Corporation Automatic map updating based on schema changes
US20140149413A1 (en) * 2012-11-23 2014-05-29 International Business Machines Corporation Managing a classification system and associated selection mechanism
US20140304484A1 (en) * 2013-04-03 2014-10-09 International Business Machines Corporation Flexibly storing defined presets for configuration of storage controller
US20140365999A1 (en) * 2013-06-07 2014-12-11 Apple Inc. Methods and systems for record editing in application development
US9411798B1 (en) * 2007-06-04 2016-08-09 Open Text Corporation Methods and apparatus for reusing report design components and templates
US20190129931A1 (en) * 2017-10-28 2019-05-02 Intuit Inc. System and method for reliable extraction and mapping of data to and from customer forms
US10402391B2 (en) * 2013-10-11 2019-09-03 Zte Corporation Processing method, device and system for data of distributed storage system
US10762581B1 (en) 2018-04-24 2020-09-01 Intuit Inc. System and method for conversational report customization
US11120512B1 (en) 2015-01-06 2021-09-14 Intuit Inc. System and method for detecting and mapping data fields for forms in a financial management system
US11281626B2 (en) * 2014-06-04 2022-03-22 Hitachi Vantara Llc Systems and methods for management of data platforms
US20220138406A1 (en) * 2019-02-14 2022-05-05 Nippon Telegraph And Telephone Corporation Reviewing method, information processing device, and reviewing program

Families Citing this family (186)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7155667B1 (en) * 2000-06-21 2006-12-26 Microsoft Corporation User interface for integrated spreadsheets and word processing tables
US7191394B1 (en) 2000-06-21 2007-03-13 Microsoft Corporation Authoring arbitrary XML documents using DHTML and XSLT
US6948135B1 (en) 2000-06-21 2005-09-20 Microsoft Corporation Method and systems of providing information to computer users
US6874143B1 (en) * 2000-06-21 2005-03-29 Microsoft Corporation Architectures for and methods of providing network-based software extensions
US7624356B1 (en) * 2000-06-21 2009-11-24 Microsoft Corporation Task-sensitive methods and systems for displaying command sets
US7000230B1 (en) 2000-06-21 2006-02-14 Microsoft Corporation Network-based software extensions
US7346848B1 (en) 2000-06-21 2008-03-18 Microsoft Corporation Single window navigation methods and systems
US6883168B1 (en) 2000-06-21 2005-04-19 Microsoft Corporation Methods, systems, architectures and data structures for delivering software via a network
US6961900B1 (en) * 2000-08-28 2005-11-01 Microsoft Corporation Rendering data according to a present schema from an origin response message
US7415672B1 (en) 2003-03-24 2008-08-19 Microsoft Corporation System and method for designing electronic forms
US7370066B1 (en) * 2003-03-24 2008-05-06 Microsoft Corporation System and method for offline editing of data files
US7913159B2 (en) 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US7296017B2 (en) 2003-03-28 2007-11-13 Microsoft Corporation Validation of XML data files
WO2004112301A2 (en) * 2003-06-11 2004-12-23 Wtviii, Inc. Mark up language authoring system
JP4418183B2 (en) * 2003-06-26 2010-02-17 ソニー株式会社 Information processing apparatus and method, program, and recording medium
US20040268229A1 (en) * 2003-06-27 2004-12-30 Microsoft Corporation Markup language editing with an electronic form
US7197515B2 (en) * 2003-06-30 2007-03-27 Microsoft Corporation Declarative solution definition
US7451392B1 (en) * 2003-06-30 2008-11-11 Microsoft Corporation Rendering an HTML electronic form by applying XSLT to XML using a solution
US20050010588A1 (en) * 2003-07-08 2005-01-13 Zalewski Stephen H. Method and apparatus for determining replication schema against logical data disruptions
US7406660B1 (en) 2003-08-01 2008-07-29 Microsoft Corporation Mapping between structured data and a visual surface
US7334187B1 (en) 2003-08-06 2008-02-19 Microsoft Corporation Electronic form aggregation
US7401104B2 (en) 2003-08-21 2008-07-15 Microsoft Corporation Systems and methods for synchronizing computer systems through an intermediary file system share or device
US7349913B2 (en) * 2003-08-21 2008-03-25 Microsoft Corporation Storage platform for organizing, searching, and sharing data
US7555497B2 (en) * 2003-08-21 2009-06-30 Microsoft Corporation Systems and methods for separating units of information manageable by a hardware/software interface system from their physical organization
US7483915B2 (en) * 2003-08-21 2009-01-27 Microsoft Corporation Systems and method for representing relationships between units of information manageable by a hardware/software interface system
US8166101B2 (en) 2003-08-21 2012-04-24 Microsoft Corporation Systems and methods for the implementation of a synchronization schemas for units of information manageable by a hardware/software interface system
US20050055354A1 (en) * 2003-08-21 2005-03-10 Microsoft Corporation Systems and methods for representing units of information manageable by a hardware/software interface system but independent of physical representation
US8238696B2 (en) 2003-08-21 2012-08-07 Microsoft Corporation Systems and methods for the implementation of a digital images schema for organizing units of information manageable by a hardware/software interface system
US7739316B2 (en) * 2003-08-21 2010-06-15 Microsoft Corporation Systems and methods for the implementation of base schema for organizing units of information manageable by a hardware/software interface system
US8131739B2 (en) 2003-08-21 2012-03-06 Microsoft Corporation Systems and methods for interfacing application programs with an item-based storage platform
US7428546B2 (en) * 2003-08-21 2008-09-23 Microsoft Corporation Systems and methods for data modeling in an item-based storage platform
US7590643B2 (en) * 2003-08-21 2009-09-15 Microsoft Corporation Systems and methods for extensions and inheritance for units of information manageable by a hardware/software interface system
US8219569B2 (en) * 2003-08-25 2012-07-10 Oracle International Corporation In-place evolution of XML schemes
US9614772B1 (en) 2003-10-20 2017-04-04 F5 Networks, Inc. System and method for directing network traffic in tunneling applications
US8055907B2 (en) * 2003-10-24 2011-11-08 Microsoft Corporation Programming interface for a computer platform
US20050192999A1 (en) * 2003-11-21 2005-09-01 Cook Scott J. System and method of virtualizing physical locations
US7313756B2 (en) * 2003-12-15 2007-12-25 Microsoft Corporation Schema editor extensions
US7237184B2 (en) * 2003-12-18 2007-06-26 Microsoft Corporation Data property promotion system and method
US8819072B1 (en) 2004-02-02 2014-08-26 Microsoft Corporation Promoting data from structured data files
US7506311B2 (en) * 2004-02-19 2009-03-17 Oracle International Corporation Test tool for application programming interfaces
US7496837B1 (en) * 2004-04-29 2009-02-24 Microsoft Corporation Structural editing with schema awareness
US7778962B2 (en) 2004-04-30 2010-08-17 Microsoft Corporation Client store synchronization through intermediary store change packets
US8095871B2 (en) * 2004-05-06 2012-01-10 Siemens Corporation System and method for GUI supported specifications for automating form field extraction with database mapping
US20050251523A1 (en) * 2004-05-07 2005-11-10 Oracle International Corporation Minimizing downtime for application changes in database systems
US7281018B1 (en) 2004-05-26 2007-10-09 Microsoft Corporation Form template data source change
US7774620B1 (en) 2004-05-27 2010-08-10 Microsoft Corporation Executing applications at appropriate trust levels
US7665014B2 (en) * 2004-06-03 2010-02-16 Microsoft Corporation Method and apparatus for generating forms using form types
WO2006012058A1 (en) * 2004-06-28 2006-02-02 Japan Communications, Inc. Systems and methods for mutual authentication of network
US8229964B2 (en) * 2004-07-07 2012-07-24 Sap Ag Ad hoc workflow
US20060026522A1 (en) * 2004-07-27 2006-02-02 Microsoft Corporation Method and apparatus for revising data models and maps by example
US7707498B2 (en) 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US7692636B2 (en) 2004-09-30 2010-04-06 Microsoft Corporation Systems and methods for handwriting to a screen
US8487879B2 (en) 2004-10-29 2013-07-16 Microsoft Corporation Systems and methods for interacting with a computer through handwriting to a screen
US7712022B2 (en) 2004-11-15 2010-05-04 Microsoft Corporation Mutually exclusive options in electronic forms
US7584417B2 (en) * 2004-11-15 2009-09-01 Microsoft Corporation Role-dependent action for an electronic form
US20060107224A1 (en) * 2004-11-15 2006-05-18 Microsoft Corporation Building a dynamic action for an electronic form
US7721190B2 (en) * 2004-11-16 2010-05-18 Microsoft Corporation Methods and systems for server side form processing
US7904801B2 (en) 2004-12-15 2011-03-08 Microsoft Corporation Recursive sections in electronic forms
US7620641B2 (en) * 2004-12-22 2009-11-17 International Business Machines Corporation System and method for context-sensitive decomposition of XML documents based on schemas with reusable element/attribute declarations
US20060136483A1 (en) * 2004-12-22 2006-06-22 International Business Machines Corporation System and method of decomposition of multiple items into the same table-column pair
US7607164B2 (en) 2004-12-23 2009-10-20 Microsoft Corporation Systems and processes for managing policy change in a distributed enterprise
US20060155716A1 (en) * 2004-12-23 2006-07-13 Microsoft Corporation Schema change governance for identity store
US7529931B2 (en) 2004-12-23 2009-05-05 Microsoft Corporation Managing elevated rights on a network
US7945590B2 (en) 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7730394B2 (en) 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7617234B2 (en) 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7937651B2 (en) 2005-01-14 2011-05-03 Microsoft Corporation Structural editing operations for network forms
US7441185B2 (en) * 2005-01-25 2008-10-21 Microsoft Corporation Method and system for binary serialization of documents
US20060182129A1 (en) * 2005-02-16 2006-08-17 Mutch Karl N Distributed markup and processing apparatus and method
US7540014B2 (en) * 2005-02-23 2009-05-26 Microsoft Corporation Automated policy change alert in a distributed enterprise
US7752224B2 (en) * 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7668873B2 (en) * 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7805422B2 (en) 2005-02-28 2010-09-28 Microsoft Corporation Change notification query multiplexing
US7725834B2 (en) * 2005-03-04 2010-05-25 Microsoft Corporation Designer-created aspect for an electronic form template
US7673228B2 (en) 2005-03-30 2010-03-02 Microsoft Corporation Data-driven actions for network forms
DE102005016690A1 (en) 2005-04-11 2006-10-12 Siemens Ag Synchronization of data
US8010515B2 (en) 2005-04-15 2011-08-30 Microsoft Corporation Query to an electronic form
US20060288270A1 (en) * 2005-06-21 2006-12-21 Microsoft Corporation Automated presentation layer generation
US8200975B2 (en) 2005-06-29 2012-06-12 Microsoft Corporation Digital signatures for network forms
US8054496B1 (en) * 2005-07-13 2011-11-08 Adobe Systems Incorporated Previewing a compound document
US8418233B1 (en) * 2005-07-29 2013-04-09 F5 Networks, Inc. Rule based extensible authentication
US8533308B1 (en) 2005-08-12 2013-09-10 F5 Networks, Inc. Network traffic management through protocol-configurable transaction processing
US7433888B2 (en) * 2005-08-25 2008-10-07 Microsoft Corporation Schema packaging, distribution and availability
US7953696B2 (en) 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US20070067343A1 (en) * 2005-09-21 2007-03-22 International Business Machines Corporation Determining the structure of relations and content of tuples from XML schema components
US8239226B2 (en) * 2005-11-02 2012-08-07 Sourcecode Technologies Holdings, Inc. Methods and apparatus for combining properties and methods from a plurality of different data sources
US20070136367A1 (en) * 2005-11-02 2007-06-14 Sourcecode Technology Holding, Inc. Methods and apparatus for dynamically modifying a business object definition
US20070130138A1 (en) * 2005-11-02 2007-06-07 Sourcecode Technology Holding, Inc. Methods and apparatus for storing a collaboratively designed workflow process
US8010940B2 (en) * 2005-11-02 2011-08-30 Sourcecode Technologies Holdings, Inc. Methods and apparatus for designing a workflow process using inheritance
US20070143305A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for storing functions associated with an electronic form
US7996758B2 (en) * 2005-11-02 2011-08-09 Sourcecode Technologies Holding, Inc. Methods and apparatus for storing data associated with an electronic form
US20070143711A1 (en) * 2005-11-02 2007-06-21 Sourcecode Technology Holding, Inc. Methods and apparatus for displaying a setup sequence
US8224853B2 (en) * 2005-11-02 2012-07-17 Sourcecode Technologies Holdings, Inc. Methods and apparatus for updating a plurality of data fields in an electronic form
US8001459B2 (en) 2005-12-05 2011-08-16 Microsoft Corporation Enabling electronic documents for limited-capability computing devices
US7779343B2 (en) 2006-01-30 2010-08-17 Microsoft Corporation Opening network-enabled electronic documents
AU2007212055B2 (en) * 2006-02-06 2010-12-16 Informatica Corporation Creating and managing XML schema version transformations
US7529758B2 (en) * 2006-02-10 2009-05-05 International Business Machines Corporation Method for pre-processing mapping information for efficient decomposition of XML documents
US9460064B2 (en) * 2006-05-18 2016-10-04 Oracle International Corporation Efficient piece-wise updates of binary encoded XML data
US20070282875A1 (en) * 2006-06-02 2007-12-06 Utstarcom, Inc. Schema Specified Computable Specification Method and Apparatus
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US8055997B2 (en) * 2006-06-26 2011-11-08 Lexmark International Technology, S.A. System and method for implementing dynamic forms
US8464066B1 (en) * 2006-06-30 2013-06-11 Amazon Technologies, Inc. Method and system for sharing segments of multimedia data
US7502807B2 (en) * 2006-06-30 2009-03-10 Microsoft Corporation Defining and extracting a flat list of search properties from a rich structured type
JP5012799B2 (en) * 2006-07-04 2012-08-29 富士通株式会社 Communication device, connection destination switching control method and program for wireless communication device by communication device
US7788654B2 (en) * 2006-08-21 2010-08-31 International Business Machines Corporation Method for construction of a linear-sized validation-plan of W3C XML schema grammars
US7779391B2 (en) * 2006-09-05 2010-08-17 International Business Machines Corporation Method of employing instructions to convert UTF characters with an enhanced extended translation facility
US7810073B2 (en) * 2006-09-05 2010-10-05 International Business Machines Corporation Method of translating n to n instructions employing an enhanced extended translation facility
US8346725B2 (en) * 2006-09-15 2013-01-01 Oracle International Corporation Evolution of XML schemas involving partial data copy
US7908474B2 (en) * 2006-09-22 2011-03-15 International Business Machines Corporation Method for improved key management for ATMs and other remote devices
US7870163B2 (en) * 2006-09-28 2011-01-11 Oracle International Corporation Implementation of backward compatible XML schema evolution in a relational database system
JP5108285B2 (en) * 2006-11-30 2012-12-26 株式会社日立製作所 Signature method, information processing apparatus, and signature program
US11113451B2 (en) * 2007-01-30 2021-09-07 Thomson Reuters Enterprise Centre Gmbh Representation of mark-up of master documents
NO327323B1 (en) * 2007-02-07 2009-06-08 Fast Search & Transfer As Procedure to interface between applications in a system for searching and retrieving information
US20080222515A1 (en) * 2007-02-26 2008-09-11 Microsoft Corporation Parameterized types and elements in xml schema
US8479093B2 (en) * 2007-03-01 2013-07-02 Microsoft Corporation Metamodel-based automatic report generation
JP4989259B2 (en) * 2007-03-06 2012-08-01 株式会社日立製作所 Signature information processing method, program thereof, and information processing apparatus
US8078604B2 (en) 2007-03-19 2011-12-13 Microsoft Corporation Identifying executable scenarios in response to search queries
US7797311B2 (en) * 2007-03-19 2010-09-14 Microsoft Corporation Organizing scenario-related information and controlling access thereto
US20080235170A1 (en) * 2007-03-19 2008-09-25 Microsoft Corporation Using scenario-related metadata to direct advertising
US7818341B2 (en) * 2007-03-19 2010-10-19 Microsoft Corporation Using scenario-related information to customize user experiences
US20080243874A1 (en) * 2007-03-28 2008-10-02 Microsoft Corporation Lightweight Schema Definition
US8539480B2 (en) * 2007-04-09 2013-09-17 Sugarcrm Inc. Multi-instance “shadow” system and method for automated resource redundancy reduction across dynamic language applications utilizing application of dynamically generated templates
WO2008137998A1 (en) * 2007-05-08 2008-11-13 Sourcecode Technology Holding, Inc. Methods and apparatus for exposing workflow process definitions as business objects
US8638319B2 (en) * 2007-05-29 2014-01-28 Livescribe Inc. Customer authoring tools for creating user-generated content for smart pen applications
US8108768B2 (en) * 2007-07-20 2012-01-31 International Business Machines Corporation Improving efficiency of content rule checking in a content management system
US8291310B2 (en) * 2007-08-29 2012-10-16 Oracle International Corporation Delta-saving in XML-based documents
US7831540B2 (en) * 2007-10-25 2010-11-09 Oracle International Corporation Efficient update of binary XML content in a database system
US8839386B2 (en) * 2007-12-03 2014-09-16 At&T Intellectual Property I, L.P. Method and apparatus for providing authentication
US20090235161A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Lossless Web-Based Editor For Complex Documents
WO2009116904A1 (en) * 2008-03-17 2009-09-24 Telefonaktiebolaget L M Ericsson (Publ) Immediate protection scheme for passive optical network
US9009585B1 (en) * 2008-03-18 2015-04-14 Avaya Technology Llc Software wizard interface
US7856416B2 (en) 2008-04-22 2010-12-21 International Business Machines Corporation Automated latent star schema discovery tool
US9832069B1 (en) 2008-05-30 2017-11-28 F5 Networks, Inc. Persistence based on server response in an IP multimedia subsystem (IMS)
US9130846B1 (en) 2008-08-27 2015-09-08 F5 Networks, Inc. Exposed control components for customizable load balancing and persistence
US8265606B2 (en) * 2008-10-09 2012-09-11 Microsoft Corporation Targeted advertisements to social contacts
US20100122265A1 (en) * 2008-11-07 2010-05-13 International Business Machines Corporation Cross - application tag reuse
US8137201B2 (en) * 2009-01-09 2012-03-20 Microsoft Corporation Arrangement for building and operating human-computation and other games
US8689131B2 (en) * 2009-01-21 2014-04-01 Microsoft Corporation Visual creation of computer-based workflows
FR2943814B1 (en) * 2009-03-24 2015-01-30 Infovista Sa METHOD FOR MANAGING A SQL-TYPE RELATIONAL DATABASE
US8095561B2 (en) * 2009-04-23 2012-01-10 Microsoft Corporation Extensible framework for data import and export
US20110041052A1 (en) * 2009-07-14 2011-02-17 Zoomii, Inc. Markup language-based authoring and runtime environment for interactive content platform
US8707158B2 (en) * 2009-08-05 2014-04-22 Microsoft Corporation Customizing a form in a model-based system
US9317256B2 (en) 2009-11-24 2016-04-19 International Business Machines Corporation Identifying syntaxes of disparate components of a computer-to-computer message
US8793208B2 (en) 2009-12-17 2014-07-29 International Business Machines Corporation Identifying common data objects representing solutions to a problem in different disciplines
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
US20110246913A1 (en) * 2010-03-30 2011-10-06 Microsoft Corporation Automated User Interface Generator
US20120023479A1 (en) * 2010-07-21 2012-01-26 Moress Gregory S method and a computer program product for automatically generating a user interface for an application program
US9245058B2 (en) * 2010-12-03 2016-01-26 Titus Inc. Method and system of hierarchical metadata management and application
US9959263B2 (en) * 2010-12-07 2018-05-01 Microsoft Technology Licensing, Llc. User interface form field expansion
CN103518195B (en) 2011-03-10 2016-09-28 J·瑞卡鲍格 Equipment, system and method for form field document based on vector
US8954839B2 (en) * 2011-05-16 2015-02-10 Sachin Sharma Contract authoring system and method
US9495333B2 (en) * 2011-05-16 2016-11-15 Zycus Infotech Pvt. Ltd. Contract authoring system and method
US9524283B2 (en) * 2011-08-30 2016-12-20 Sas Institutes Inc. Techniques to remotely access form information and generate a form
US10756759B2 (en) 2011-09-02 2020-08-25 Oracle International Corporation Column domain dictionary compression
US8924431B2 (en) 2011-09-30 2014-12-30 Comprehend Systems, Inc. Pluggable domain-specific typing systems and methods of use
US8612405B1 (en) 2011-09-30 2013-12-17 Emc Corporation System and method of dynamic data object upgrades
US9020981B2 (en) 2011-09-30 2015-04-28 Comprehend Systems, Inc. Systems and methods for generating schemas that represent multiple data sources
US9164751B2 (en) * 2011-09-30 2015-10-20 Emc Corporation System and method of rolling upgrades of data traits
US8747115B2 (en) 2012-03-28 2014-06-10 International Business Machines Corporation Building an ontology by transforming complex triples
US8539001B1 (en) * 2012-08-20 2013-09-17 International Business Machines Corporation Determining the value of an association between ontologies
US8812523B2 (en) 2012-09-28 2014-08-19 Oracle International Corporation Predicate result cache
CN103970737B (en) * 2013-01-24 2018-06-22 腾讯科技(深圳)有限公司 A kind of data configuration method and apparatus
US9232025B2 (en) * 2013-02-01 2016-01-05 Schweitzer Engineering Laboratories, Inc. Entry of electric power delivery system data in a web-based interface
US10331765B2 (en) 2013-05-24 2019-06-25 Sourcecode Technology Holdings, Inc. Methods and apparatus for translating forms to native mobile applications
US9311372B2 (en) 2013-05-31 2016-04-12 Wal-Mart Stores, Inc. Product record normalization system with efficient and scalable methods for discovering, validating, and using schema mappings
US9223528B2 (en) * 2013-07-30 2015-12-29 Konica Minolta Laboratory U.S.A., Inc. Electronic content management workflow
US10021082B2 (en) * 2013-12-12 2018-07-10 Surverymonkey Inc. Integration of form and file services
US9824080B2 (en) * 2014-01-31 2017-11-21 Aruba Networks, Inc. Automatic generation of forms for device configuration
US20160012031A1 (en) * 2014-07-08 2016-01-14 Bank Of America Corporation Template-based message generation tool
US10353955B2 (en) * 2014-11-06 2019-07-16 Lexisnexis, A Division Of Reed Elsevier Inc. Systems and methods for normalized schema comparison
JP6540793B2 (en) * 2015-03-19 2019-07-10 富士通株式会社 Display method, information processing apparatus, display control apparatus and program
US20160321226A1 (en) * 2015-05-01 2016-11-03 Microsoft Technology Licensing, Llc Insertion of unsaved content via content channel
WO2016195565A1 (en) * 2015-05-29 2016-12-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for client side encoding in a data processing system
JP2017004133A (en) * 2015-06-08 2017-01-05 株式会社リコー Service providing system, information processing system, information processing device, service providing method, and program
US9928230B1 (en) 2016-09-29 2018-03-27 Vignet Incorporated Variable and dynamic adjustments to electronic forms
US9848061B1 (en) 2016-10-28 2017-12-19 Vignet Incorporated System and method for rules engine that dynamically adapts application behavior
US9858063B2 (en) 2016-02-10 2018-01-02 Vignet Incorporated Publishing customized application modules
US9607030B1 (en) 2016-09-23 2017-03-28 International Business Machines Corporation Managing acronyms and abbreviations used in the naming of physical database objects
US10783316B2 (en) * 2018-02-26 2020-09-22 Servicenow, Inc. Bundled scripts for web content delivery
US10775974B2 (en) 2018-08-10 2020-09-15 Vignet Incorporated User responsive dynamic architecture
US11373034B2 (en) * 2019-02-11 2022-06-28 Verizon Patent And Licensing Inc. Method and system for dynamic form generation infrastructure
CN110968737A (en) * 2019-11-13 2020-04-07 中国人民解放军92859部队 Open type ocean geographic information symbol construction system and implementation method thereof
US11379651B1 (en) * 2020-07-06 2022-07-05 Turtl Surf & Immerse Limited Methods and systems for interactive content creation
US11763919B1 (en) 2020-10-13 2023-09-19 Vignet Incorporated Platform to increase patient engagement in clinical trials through surveys presented on mobile devices
US11901083B1 (en) 2021-11-30 2024-02-13 Vignet Incorporated Using genetic and phenotypic data sets for drug discovery clinical trials
US11705230B1 (en) 2021-11-30 2023-07-18 Vignet Incorporated Assessing health risks using genetic, epigenetic, and phenotypic data sources

Citations (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US23604A (en) * 1859-04-12 Improved wardrobe-bed
US121005A (en) * 1871-11-14 Improvement in harvesters
US122844A (en) * 1872-01-16 Improvement in paper-cutting machines
US129060A (en) * 1872-07-16 Improvement in vapor-burners
US143785A (en) * 1873-10-21 Improvement in spindle-bolsters
US163479A (en) * 1875-05-18 Improvement in corset-clasps
US205563A (en) * 1878-07-02 Improvement in horse-powers
US205573A (en) * 1878-07-02 Improvement in guides for the stems of stamp-mills
US5627979A (en) * 1994-07-18 1997-05-06 International Business Machines Corporation System and method for providing a graphical user interface for mapping and accessing objects in data stores
US6119126A (en) * 1998-05-29 2000-09-12 Oracle Corporation Object-relational query builder which determines existence of structures from information loaded from the server and cached locally on the client computing system
US6163776A (en) * 1998-03-23 2000-12-19 Software Tree, Inc. System and method for exchanging data and commands between an object oriented system and relational system
US6189000B1 (en) * 1997-06-30 2001-02-13 Microsoft Corporation System and method for accessing user properties from multiple storage mechanisms
US6199059B1 (en) * 1998-04-22 2001-03-06 International Computex, Inc. System and method for classifying and retrieving information with virtual object hierarchy
US6418448B1 (en) * 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US20020099735A1 (en) * 2001-01-19 2002-07-25 Schroeder Jonathan E. System and method for conducting electronic commerce
US6460043B1 (en) * 1998-02-04 2002-10-01 Microsoft Corporation Method and apparatus for operating on data with a conceptual data manipulation language
US20030101190A1 (en) * 2001-03-14 2003-05-29 Microsoft Corporation Schema-based notification service
US20030115548A1 (en) * 2001-12-14 2003-06-19 International Business Machines Corporation Generating class library to represent messages described in a structured language schema
US20030204511A1 (en) * 2002-04-30 2003-10-30 Microsoft Corporation System and method for viewing relational data using a hierarchical schema
US20040059744A1 (en) * 2002-09-19 2004-03-25 Cedars-Sinai Medical Center Data repository system
US6721747B2 (en) * 2000-01-14 2004-04-13 Saba Software, Inc. Method and apparatus for an information server
US20040194057A1 (en) * 2003-03-25 2004-09-30 Wolfram Schulte System and method for constructing and validating object oriented XML expressions
US6816865B2 (en) * 2001-04-18 2004-11-09 International Business Machines Corporation Process for data driven application integration for B2B
US6816864B2 (en) * 2000-12-21 2004-11-09 International Business Machines Corporation System and method for handling set structured data through a computer network
US6829606B2 (en) * 2002-02-14 2004-12-07 Infoglide Software Corporation Similarity search engine for use with relational databases
US6865576B1 (en) * 1999-05-21 2005-03-08 International Business Machines Corporation Efficient schema for storing multi-value attributes in a directory service backing store
US6871198B2 (en) * 2001-12-21 2005-03-22 Requisite Technology, Inc. Composing and cataloging item configuration data
US6904432B2 (en) * 2001-11-30 2005-06-07 Intelligent Medical Objects, Inc. Adaptive data manager
US7007033B1 (en) * 2003-04-28 2006-02-28 Microsoft Corporation Management of markup language data mappings available to a spreadsheet application workbook
US20060101333A1 (en) * 2003-02-28 2006-05-11 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US204511A (en) * 1878-06-04 Improvement in broom-racks
US101190A (en) * 1870-03-22 John d
US2006700A (en) * 1931-12-09 1935-07-02 Borden Co Process for the production of vitamin free casein
JP3859313B2 (en) * 1997-08-05 2006-12-20 富士通株式会社 Tag document compression apparatus and restoration apparatus, compression method and restoration method, compression / decompression apparatus and compression / decompression method, and computer-readable recording medium recording a compression, decompression or compression / decompression program
CA2303519A1 (en) * 1997-09-15 1999-03-25 Liting Li Bimetallic complexes and polymerization catalysts therefrom
US6119123A (en) * 1997-12-02 2000-09-12 U.S. Philips Corporation Apparatus and method for optimizing keyframe and blob retrieval and storage
US6161125A (en) * 1998-05-14 2000-12-12 Sun Microsystems, Inc. Generic schema for storing configuration information on a client computer
US6635088B1 (en) * 1998-11-20 2003-10-21 International Business Machines Corporation Structured document and document type definition compression
US6450043B1 (en) * 1999-07-07 2002-09-17 Tek-Air Systems Inc. Probe for monitoring intake air volume and method
US7111233B1 (en) * 2000-03-09 2006-09-19 Electronic Data Systems Corporation Method and system for applying XML schema
US6968503B1 (en) * 2000-03-09 2005-11-22 Quovadx, Inc. XML user interface for a workflow server
US6675355B1 (en) * 2000-03-16 2004-01-06 Autodesk, Inc. Redline extensible markup language (XML) schema
US6768986B2 (en) 2000-04-03 2004-07-27 Business Objects, S.A. Mapping of an RDBMS schema onto a multidimensional data model
CA2329891A1 (en) * 2000-12-29 2002-06-29 Subsecond Technology Inc. Method and apparatus for remote database maintenance and access
US6845499B2 (en) * 2001-01-31 2005-01-18 I2 Technologies Us, Inc. System and method for developing software applications using an extended XML-based framework
US7237190B2 (en) * 2001-03-07 2007-06-26 International Business Machines Corporation System and method for generating multiple customizable interfaces for XML documents
US7756835B2 (en) * 2001-03-23 2010-07-13 Bea Systems, Inc. Database and operating system independent copying/archiving of a web base application
US7500017B2 (en) * 2001-04-19 2009-03-03 Microsoft Corporation Method and system for providing an XML binary format
US7778816B2 (en) * 2001-04-24 2010-08-17 Microsoft Corporation Method and system for applying input mode bias
WO2002093430A1 (en) * 2001-05-14 2002-11-21 Infomove, Inc. Method and apparatus for implementing a data management system using a metadata specification
US6829745B2 (en) * 2001-06-28 2004-12-07 Koninklijke Philips Electronics N.V. Method and system for transforming an XML document to at least one XML document structured according to a subset of a set of XML grammar rules
US20030135825A1 (en) * 2001-12-05 2003-07-17 Matthew Gertner Dynamically generated mark-up based graphical user interfaced with an extensible application framework with links to enterprise resources
US20030121005A1 (en) * 2001-12-20 2003-06-26 Axel Herbst Archiving and retrieving data objects
US6950985B2 (en) * 2001-12-27 2005-09-27 Koninklijke Philips Electronics, N.V. Specifying DICOM semantic constraints in XML
US7200805B2 (en) * 2002-03-19 2007-04-03 Logiclibrary, Inc. Dynamic generation of schema information for data description languages
US20030188264A1 (en) * 2002-03-29 2003-10-02 Full Degree, Inc. Method and apparatus for XML data normalization
US7822495B2 (en) * 2002-04-15 2010-10-26 Fisher-Rosemount Systems, Inc. Custom function blocks for use with process control systems
US7392479B2 (en) * 2002-06-27 2008-06-24 Microsoft Corporation System and method for providing namespace related information
US7721202B2 (en) * 2002-08-16 2010-05-18 Open Invention Network, Llc XML streaming transformer
US20040064825A1 (en) 2002-09-30 2004-04-01 Timothy Lim Method and system for object system interoperability
US7234109B2 (en) * 2002-11-19 2007-06-19 Microsoft Corp. Equality of extensible markup language structures
US7181450B2 (en) 2002-12-18 2007-02-20 International Business Machines Corporation Method, system, and program for use of metadata to create multidimensional cubes in a relational database
KR20040070894A (en) * 2003-02-05 2004-08-11 삼성전자주식회사 Method of compressing XML data and method of decompressing compressed XML data
US7913159B2 (en) * 2003-03-28 2011-03-22 Microsoft Corporation System and method for real-time validation of structured data files
US20040210552A1 (en) * 2003-04-16 2004-10-21 Richard Friedman Systems and methods for processing resource description framework data
US7331014B2 (en) * 2003-05-16 2008-02-12 Microsoft Corporation Declarative mechanism for defining a hierarchy of objects
US7401075B2 (en) * 2003-06-11 2008-07-15 Wtviii, Inc. System for viewing and indexing mark up language messages, forms and documents
WO2004112301A2 (en) * 2003-06-11 2004-12-23 Wtviii, Inc. Mark up language authoring system
US20050144556A1 (en) * 2003-12-31 2005-06-30 Petersen Peter H. XML schema token extension for XML document compression
US8296292B2 (en) * 2009-11-25 2012-10-23 Microsoft Corporation Internal ranking model representation schema

Patent Citations (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US23604A (en) * 1859-04-12 Improved wardrobe-bed
US121005A (en) * 1871-11-14 Improvement in harvesters
US122844A (en) * 1872-01-16 Improvement in paper-cutting machines
US129060A (en) * 1872-07-16 Improvement in vapor-burners
US143785A (en) * 1873-10-21 Improvement in spindle-bolsters
US163479A (en) * 1875-05-18 Improvement in corset-clasps
US205563A (en) * 1878-07-02 Improvement in horse-powers
US205573A (en) * 1878-07-02 Improvement in guides for the stems of stamp-mills
US5627979A (en) * 1994-07-18 1997-05-06 International Business Machines Corporation System and method for providing a graphical user interface for mapping and accessing objects in data stores
US6189000B1 (en) * 1997-06-30 2001-02-13 Microsoft Corporation System and method for accessing user properties from multiple storage mechanisms
US6460043B1 (en) * 1998-02-04 2002-10-01 Microsoft Corporation Method and apparatus for operating on data with a conceptual data manipulation language
US6163776A (en) * 1998-03-23 2000-12-19 Software Tree, Inc. System and method for exchanging data and commands between an object oriented system and relational system
US6199059B1 (en) * 1998-04-22 2001-03-06 International Computex, Inc. System and method for classifying and retrieving information with virtual object hierarchy
US6119126A (en) * 1998-05-29 2000-09-12 Oracle Corporation Object-relational query builder which determines existence of structures from information loaded from the server and cached locally on the client computing system
US6353830B1 (en) * 1998-05-29 2002-03-05 Oracle Corporation Graphical interface for object-relational query builder
US6865576B1 (en) * 1999-05-21 2005-03-08 International Business Machines Corporation Efficient schema for storing multi-value attributes in a directory service backing store
US6418448B1 (en) * 1999-12-06 2002-07-09 Shyam Sundar Sarkar Method and apparatus for processing markup language specifications for data and metadata used inside multiple related internet documents to navigate, query and manipulate information from a plurality of object relational databases over the web
US6721747B2 (en) * 2000-01-14 2004-04-13 Saba Software, Inc. Method and apparatus for an information server
US6816864B2 (en) * 2000-12-21 2004-11-09 International Business Machines Corporation System and method for handling set structured data through a computer network
US20020099735A1 (en) * 2001-01-19 2002-07-25 Schroeder Jonathan E. System and method for conducting electronic commerce
US20030101190A1 (en) * 2001-03-14 2003-05-29 Microsoft Corporation Schema-based notification service
US6816865B2 (en) * 2001-04-18 2004-11-09 International Business Machines Corporation Process for data driven application integration for B2B
US6904432B2 (en) * 2001-11-30 2005-06-07 Intelligent Medical Objects, Inc. Adaptive data manager
US20030115548A1 (en) * 2001-12-14 2003-06-19 International Business Machines Corporation Generating class library to represent messages described in a structured language schema
US6871198B2 (en) * 2001-12-21 2005-03-22 Requisite Technology, Inc. Composing and cataloging item configuration data
US6829606B2 (en) * 2002-02-14 2004-12-07 Infoglide Software Corporation Similarity search engine for use with relational databases
US20030204511A1 (en) * 2002-04-30 2003-10-30 Microsoft Corporation System and method for viewing relational data using a hierarchical schema
US20040059744A1 (en) * 2002-09-19 2004-03-25 Cedars-Sinai Medical Center Data repository system
US20060101333A1 (en) * 2003-02-28 2006-05-11 Microsoft Corporation Importing and exporting markup language data in a spreadsheet application document
US20040194057A1 (en) * 2003-03-25 2004-09-30 Wolfram Schulte System and method for constructing and validating object oriented XML expressions
US7007033B1 (en) * 2003-04-28 2006-02-28 Microsoft Corporation Management of markup language data mappings available to a spreadsheet application workbook

Cited By (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040104939A1 (en) * 2002-11-22 2004-06-03 Enterasys Networks, Inc. Method and apparatus for navigating through a task on a computer
US9632995B2 (en) * 2002-11-22 2017-04-25 Extreme Networks, Inc. Method and apparatus for navigating through a task on a computer
US20070028160A1 (en) * 2005-07-29 2007-02-01 Microsoft Corporation Re-use wizard
US20080126385A1 (en) * 2006-09-19 2008-05-29 Microsoft Corporation Intelligent batching of electronic data interchange messages
US20080072160A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Electronic data interchange transaction set definition based instance editing
US20080071817A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Electronic data interchange (edi) data dictionary management and versioning system
US20080071806A1 (en) * 2006-09-20 2008-03-20 Microsoft Corporation Difference analysis for electronic data interchange (edi) data dictionary
US20080126386A1 (en) * 2006-09-20 2008-05-29 Microsoft Corporation Translation of electronic data interchange messages to extensible markup language representation(s)
US8108767B2 (en) * 2006-09-20 2012-01-31 Microsoft Corporation Electronic data interchange transaction set definition based instance editing
US8161078B2 (en) * 2006-09-20 2012-04-17 Microsoft Corporation Electronic data interchange (EDI) data dictionary management and versioning system
US20080168081A1 (en) * 2007-01-09 2008-07-10 Microsoft Corporation Extensible schemas and party configurations for edi document generation or validation
US20080168109A1 (en) * 2007-01-09 2008-07-10 Microsoft Corporation Automatic map updating based on schema changes
US9411798B1 (en) * 2007-06-04 2016-08-09 Open Text Corporation Methods and apparatus for reusing report design components and templates
US10198425B2 (en) 2007-06-04 2019-02-05 Open Text Holdings, Inc. Methods and apparatus for reusing report design components and templates
US20140149413A1 (en) * 2012-11-23 2014-05-29 International Business Machines Corporation Managing a classification system and associated selection mechanism
US9898524B2 (en) * 2012-11-23 2018-02-20 International Business Machines Corporation Managing a classification system and associated selection mechanism
US10902028B2 (en) 2012-11-23 2021-01-26 International Business Machines Corporation Managing a classification system and associated selection mechanism
US20140304484A1 (en) * 2013-04-03 2014-10-09 International Business Machines Corporation Flexibly storing defined presets for configuration of storage controller
US9575660B2 (en) * 2013-04-03 2017-02-21 International Business Machines Corporation Flexibly storing defined presets for configuration of storage controller
US20140365999A1 (en) * 2013-06-07 2014-12-11 Apple Inc. Methods and systems for record editing in application development
US10089107B2 (en) * 2013-06-07 2018-10-02 Apple Inc. Methods and systems for record editing in application development
US10402391B2 (en) * 2013-10-11 2019-09-03 Zte Corporation Processing method, device and system for data of distributed storage system
US11281626B2 (en) * 2014-06-04 2022-03-22 Hitachi Vantara Llc Systems and methods for management of data platforms
US11120512B1 (en) 2015-01-06 2021-09-14 Intuit Inc. System and method for detecting and mapping data fields for forms in a financial management system
US11734771B2 (en) 2015-01-06 2023-08-22 Intuit Inc. System and method for detecting and mapping data fields for forms in a financial management system
US10853567B2 (en) * 2017-10-28 2020-12-01 Intuit Inc. System and method for reliable extraction and mapping of data to and from customer forms
US20190129931A1 (en) * 2017-10-28 2019-05-02 Intuit Inc. System and method for reliable extraction and mapping of data to and from customer forms
US11354495B2 (en) 2017-10-28 2022-06-07 Intuit Inc. System and method for reliable extraction and mapping of data to and from customer forms
US10762581B1 (en) 2018-04-24 2020-09-01 Intuit Inc. System and method for conversational report customization
US20220138406A1 (en) * 2019-02-14 2022-05-05 Nippon Telegraph And Telephone Corporation Reviewing method, information processing device, and reviewing program

Also Published As

Publication number Publication date
US7366729B2 (en) 2008-04-29
US8127224B2 (en) 2012-02-28
WO2004112301A2 (en) 2004-12-23
US20120159300A1 (en) 2012-06-21
US20060031757A9 (en) 2006-02-09
US20080052325A1 (en) 2008-02-28
US20040268240A1 (en) 2004-12-30
US20040255243A1 (en) 2004-12-16
US20080059518A1 (en) 2008-03-06
US20100251097A1 (en) 2010-09-30
US8688747B2 (en) 2014-04-01
US9256698B2 (en) 2016-02-09
US7308458B2 (en) 2007-12-11
WO2004112301A3 (en) 2005-09-09

Similar Documents

Publication Publication Date Title
US7366729B2 (en) Schema framework and a method and apparatus for normalizing schema
US7991805B2 (en) System for viewing and indexing mark up language messages, forms and documents
US7076728B2 (en) Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
US7409634B2 (en) Method and apparatus for end-to-end content publishing system using XML with an object dependency graph
CA2535093C (en) Generating end-user presentations from structured data
US20050080808A1 (en) Document creation system and method using knowledge base, precedence, and integrated rules
Salminen et al. Communicating with XML
Zhang et al. Adding valid time to XPath
Lenz et al. Office 2003 XML: Integrating Office with the Rest of the World
Chase XML primer plus
Watt et al. XLink Essentials
Sengupta DocBase: a database environment for structured documents
Zoller et al. WEBCON: a toolkit for an automatic, data dictionary based connection of databases to the WWW
Kazakos et al. Automation of Metadata Repository Development with XML Schema
Lehtonen Semi-automatic document assembly with structured source data
Wempen Special Edition Using Microsoft Office Word 2007
Flynn et al. What type of document?
Hufflen LIFC (FRE CNRS 2661)
Kuikka et al. Survey of software for structured text
Oikonomidis et al. XML ASSESSMENT USAGE REPORT
Rosenblum et al. A Decade of DTDs and SGML in Scholarly Publishing

Legal Events

Date Code Title Description
AS Assignment

Owner name: WTVIII, INC., GEORGIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VINCENT III, WINCHEL TODD;REEL/FRAME:015459/0633

Effective date: 20040610

STCF Information on status: patent grant

Free format text: PATENTED CASE

FPAY Fee payment

Year of fee payment: 4

FPAY Fee payment

Year of fee payment: 8

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2553); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY

Year of fee payment: 12