Patent Publication Number: US-8112816-B2

Title: Document verification apparatus and document verification method

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application claims priority under 35 USC 119 from Japanese patent documents, 2005-144611 and 2006-132999, the disclosure of which is incorporated by reference herein. 
     BACKGROUND 
     1. Technical Field 
     This invention relates to a document verification apparatus and a document verification method. 
     2. Related Art 
     In establishing and operating a structured document processing system, a heavy work load is applied by a verification process of a structured document to be processed. This causes a degradation of processing efficiency. To address this problem, approaches have been taken as follows: (1) speeding up of a verification processing program, (2) elimination of the verification process, and (3) transfer the verification process to the outside of the system. The verification process denotes a process for checking whether or not the structured document satisfies conditions expressed in a document schema or the like. The verification process applied to documents conforming to Extensible Markup Language (XML), a well-known structured document, is categorized into two processes. One verification process is a process of verifying that the document is a well-formed XML document, in other words, a process of verifying whether the document is written on the basis of the syntax specified as XML standard. The other verification process is a process of verifying document validity, in other words, a process of determining whether or not the document satisfies conditions of the corresponding document schema. Document Type Definition (DTD) and W3C XML Schema are representative document schemata. “W3C” is the abbreviation of a standards body, World Web Consortium. 
     It is to be noted that the above-described approaches are not advanced enough to address the problem that the verification process increases processing workloads. The method of speeding up the verification processing program won&#39;t be able to deal with the document schema for business use to be introduced more in the future or a large-scale document. 
     SUMMARY 
     The present invention has been made in view of the above circumstances and provides a document verification apparatus, a document verification method, and a program product therefor, by which processing efficiency is improved by alleviating workloads of a verification process implemented on an electronic document. 
     According to one aspect of the present invention, there is provided a document verification apparatus including: a determining portion that determines whether a change that influences a verification result is made to at least one of an electronic document and a given condition, after it is verified whether or not the electronic document that has been input satisfies the given condition; and an outputting portion that outputs the verification result after it is verified whether or not the electronic document satisfies the given condition, if it is determined that the change is made to at least one of the electronic document and the given condition, or outputs a result of a time when it is verified whether or not the electronic document satisfies the given condition most recently, if it is determined that the change is not made. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Embodiments of the present invention will be described in detail based on the following figures, wherein: 
         FIG. 1  shows an authentication agency system according to an exemplary embodiment of the present invention; 
         FIG. 2  is a flowchart of processes according to an exemplary embodiment of the present invention; 
         FIG. 3  shows an itinerary request that a user client sends to a travel agency; 
         FIG. 4  shows a schema of the itinerary request; 
         FIG. 5  shows an itinerary draft, which is generated by the travel agency a and sent to a railroad company; 
         FIG. 6  shows a schema of the itinerary draft; 
         FIG. 7  shows the itinerary draft, which is sent back to the travel agency from the railroad company; 
         FIG. 8  shows the itinerary draft, which is sent to a first airline from the travel agency; 
         FIG. 9  shows the itinerary draft, which is sent back to the travel agency from a second airline and is then sent to the second airline from the travel agency; 
         FIG. 10  shows the itinerary draft, which is sent back to the travel agency from the second airline; 
         FIG. 11  shows the itinerary draft, which is sent to a first car rental company from the travel agency, is sent back from the first car rental company, and is then sent to a second car rental company from the travel agency; 
         FIG. 12  shows the itinerary draft, which is sent back to the travel agency from the second car rental company; 
         FIG. 13  shows the itinerary draft, which is sent to a hotel from the travel agency; 
         FIG. 14  shows the itinerary draft, which is sent back to the travel agency from the hotel; 
         FIG. 15  shows the itinerary draft, in which the travel agency fills in missing information; 
         FIG. 16  shows the itinerary that the travel agency generates with the use of the itinerary draft and is sent to a translation service; 
         FIG. 17  shows a schema of the itinerary; 
         FIG. 18  shows the itinerary, which is sent back to the travel agency from the translation service, and is sent to the user from the travel agency; 
         FIG. 19  shows a sent and received document used when the first car rental company requests a document verification service for a validity verification process; 
         FIG. 20  is a block diagram of a system according to a first embodiment of the present invention; 
         FIG. 21  exemplarily shows a process flowchart of processes of the verification process controlling portion according to the first embodiment of the present invention; 
         FIG. 22  shows a document retained in a verified document retaining portion; 
         FIG. 23  shows sent and received document to be input into a document verification service from the first car rental company; 
         FIG. 24  is a view showing a system structure according to a second embodiment of the present invention; 
         FIG. 25  exemplarily shows a flowchart of processes of a verification process controlling portion according to the second embodiment of the present invention; 
         FIG. 26  exemplarily shows a flowchart of processes of the subroutine EVALUATE executed at step S 1042 ; 
         FIG. 27  is a flow chart of processes of the subroutine GET_DIGEST at step S 1052 ; 
         FIG. 28  shows the sent and received document input into the document verification service from the first car rental company; 
         FIG. 29  shows a DOM tree to be generated; 
         FIG. 30  shows descriptions of the respective nodes from a first line to a forty-second line shown in  FIG. 29 ; 
         FIG. 31  shows the sent and received document when step S 1043  is completed; 
         FIG. 32  shows a document schema; 
         FIG. 33  shows a document after a verification process is implemented; 
         FIG. 34  exemplarily shows a flow chart of processes of the subroutine GET_DIGEST according to a third embodiment of the present invention; 
         FIG. 35  shows an example of a sent and received document transmitted to the first car rental company according to a fourth embodiment of the present invention; 
         FIG. 36  exemplarily shows a flow chart of processes of the subroutine EVALUATE according to the fourth embodiment of the present invention; 
         FIG. 37  exemplarily shows a flow chart of processes of the subroutine GET_DIGEST according to the fourth embodiment of the present invention; 
         FIG. 38  exemplarily shows a flow chart of processes implemented at step S 1091 ; 
         FIG. 39  shows the sent and received document sent back to the first car rental company; 
         FIG. 40  shows a document obtained as a result of implementing an addition processing on the document to be sent to the first car rental company from the travel agency; 
         FIG. 41  shows a document schema that corresponds to a document to be sent to the first car rental company from the travel agency; 
         FIG. 42  shows a document obtained as a result of the addition processing; 
         FIG. 43  exemplarily shows a flow chart of processes of a subroutine CANONICALIZE according to a fifth embodiment of the present invention; 
         FIG. 44  shows a DOM tree obtained when the document shown in  FIG. 40  and the document shown in  FIG. 42  are respectively input into the subroutine CANONICALIZE; 
         FIG. 45  exemplarily shows a flow chart of processes of the subroutine CANONICALIZE according to a sixth embodiment of the present invention; 
         FIG. 46  shows a document schema according to the sixth embodiment of the present invention; 
         FIG. 47  shows a document obtained as a result of the addition processing on the document sent to the first car rental company from the travel agency; 
         FIG. 48  shows a DOM tree obtained when the document shown in  FIG. 47  is input into the subroutine CANONICALIZE with the use of the document schema shown in  FIG. 46 ; 
         FIG. 49  shows a document schema that conforms to XML DTD specification according to a seventh embodiment of the present invention; 
         FIG. 50  shows a document that refers to the document schema shown in  FIG. 49 ; 
         FIG. 51  shows an exemplary document that employs a description that conforms to the XML standard specification; 
         FIG. 52  exemplarily shows a flow chart of processes of the subroutine CANONICALIZE according to the seventh embodiment of the present invention; 
         FIG. 53  shows a DOM tree according to the seventh embodiment of the present invention; 
         FIG. 54  shows a document schema that conforms to XML DTD according to an eighth embodiment of the present invention; 
         FIG. 55  is a document that refers to the document schema shown in  FIG. 54 ; 
         FIG. 56  exemplarily shows a flow chart of processes of the subroutine CANONICALIZE according to the eighth embodiment of the present invention; 
         FIG. 57  exemplarily shows a flow chart of processes of the subroutine CANONICALIZE according to a ninth embodiment of the present invention; 
         FIG. 58  exemplarily shows an alternative flow chart of the subroutine CANONICALIZE according to the ninth embodiment of the present invention; 
         FIG. 59 ,  FIG. 60 ,  FIG. 61 ,  FIG. 62 ,  FIG. 63 ,  FIG. 64 ,  FIG. 65 ,  FIG. 66 ,  FIG. 67 ,  FIG. 68 , and  FIG. 69  respectively show the portions of processes at step S 1142 ; 
         FIG. 70  shows a document that corresponds to a place element in a forty-three line in  FIG. 18 ; 
         FIG. 71 ,  FIG. 72 ,  FIG. 73 ,  FIG. 74 ,  FIG. 75 ,  FIG. 76 ,  FIG. 77 ,  FIG. 78 ,  FIG. 79 ,  FIG. 80 , and  FIG. 81  respectively show document schema fragments according to the ninth embodiment of the present invention; 
         FIG. 82  shows a document schema fragment the corresponds to the document shown in  FIG. 70 ; 
         FIG. 83  exemplarily shows a flow chart of processes according to a tenth embodiment of the present invention; 
         FIG. 84  shows a portion of processes at step S 1302 ; 
         FIG. 85  shows the document schema fragment generated at step S 1302 ; 
         FIG. 86  partially shows the sent and received document that includes the document shown in  FIG. 18  sent back from the translation service; 
         FIG. 87  shows a list of digest values (new digest values) calculated by the document portion shown in  FIG. 59  through  FIG. 70  and the digest values (old digest values) shown in  FIG. 86 , when the sent and received document shown in  FIG. 86  is input into the document verification service; 
         FIG. 88  shows the sent and received document according to the tenth embodiment of the present invention; 
         FIG. 89  shows a sent and received document sent back to the first airline from the document verification service; 
         FIG. 90  shows the sent and received document sent to a document verification service from the travel agency according to the tenth embodiment of the present invention; 
         FIG. 91  shows a list of the digest values (old digest values) retained as the digest element, the digest values (new digest values) calculated by the document verification service, with respect to three partial structures in which the validity verification results and the digest values are retained; 
         FIG. 92  shows a schematic view of a system employed in an eleventh embodiment of the present invention; 
         FIG. 93  is a flow chart of processes of the subroutine EVALUATE according to an eleventh embodiment of the present invention; 
         FIG. 94  shows a document schema after renewal; 
         FIG. 95  is the sent and received document shown in  FIG. 9  sent back to the second airline from the travel agency; 
         FIG. 96  is a flow chart of processes of the verification process controlling portion according to a twelfth embodiment of the present invention; 
         FIG. 97  shows a flow chart of processes of determining whether or not the language defined by a document schema A includes the language defined by a document schema B; 
         FIG. 98  is a flow chart of processes of the subroutine COMPARE according to the twelfth embodiment of the present invention; 
         FIG. 99  is a view showing a deterministic finite-state automaton that accepts the language lead by the production rule that generates the symbol corresponding to the passengers element in the document schema shown in  FIG. 6  in the left side; 
         FIG. 100  is a view showing a deterministic finite-state automaton that accepts the language lead by the production rule that generates the symbol corresponding to the passengers element in the document schema shown in  FIG. 94  in the left side; 
         FIG. 101  is a schematic view of a system employed according to a thirteenth embodiment of the present invention; 
         FIG. 102  is a flow chart of processes of the subroutine EVALUATE according to the thirteenth embodiment of the present invention; 
         FIG. 103  is a flow chart of processes at step S 1211 ; 
         FIG. 104  is a view showing an example of the sent and received document to be input into the document verification service; 
         FIG. 105  is a view showing the sent and received document to be sent to the document verification service from a document editing service; 
         FIG. 106  shows the sent and received document; 
         FIG. 107  is a schematic view of a system according to a fourteenth embodiment of the invention; 
         FIG. 108  is a flow chart of processes of the subroutine EVALUATE according to the fourteenth embodiment of the invention; 
         FIG. 109  shows examples of calculation results of a verification processing time with a conventional method, the verification processing time of unverified document with the use of a method employed according to an aspect of the invention, and a processing time of the verified document with the use of a method employed according to an exemplary embodiment of the present invention; 
         FIG. 110  shows correlation of the number of process times of an identical document and the processing time of the conventional method with the processing time of the method employed according to an aspect of the invention being set as 1, when the processing times shown in  FIG. 109  is considered; 
         FIG. 111  is a view showing a document used for measurement; 
         FIG. 112  is a view showing a document schema used for measurement; 
         FIG. 113  illustrates a system configuration according to a fifteenth embodiment of the present invention; 
         FIG. 114  is a flow chart of a fundamental verification process of a document verification service system; 
         FIG. 115  illustrates a system configuration according to the sixteenth embodiment of the invention; 
         FIG. 116  shows a UBL procurement process and schemata used; 
         FIG. 117  shows an example of a schema import; 
         FIG. 118  shows an example of a document schema fragment; 
         FIG. 119  is an example of the information for verification; 
         FIG. 120  shows a configuration of a system according to a seventeenth embodiment of the invention; 
         FIG. 121  illustrates a system configuration according to an eighteenth embodiment of the present invention; 
         FIG. 122  is a schematic view of a WSDL document instance according to the seventeenth embodiment of the present invention; 
         FIG. 123  is a schematic view of the BPEL4WS document instance according to the eighteenth embodiment of the present invention; 
         FIG. 124  schematically shows the verification method of a validity verifying portion according to the seventeenth embodiment of the present invention; 
         FIG. 125  illustrates a system configuration according to a nineteenth embodiment of the present invention; and 
         FIG. 126  is a schematic view showing a message flow according to the nineteenth embodiment. 
     
    
    
     DESCRIPTION OF THE EMBODIMENTS 
     A description will now be given, with reference to the accompanying drawings, of embodiments of the invention. 
     [Brief Overview of Itinerary Table Making Service] 
       FIG. 1  is a block diagram of a present system.  FIG. 2  exemplarily shows a flowchart of processes of the present system. Referring to  FIG. 1 , a system  100  includes a hotel  101 , a first car rental company  102 , a second car rental company  103 , a translation service  104 , a first airline  105 , a second airline  106 , a railroad company  107 , a user client  108 , a travel agency  109 , and a document verification service  110 . These are respectively composed of a server, personal computer having a CPU, RAM, ROM, and the like, and are connected on a network  120  such as the Internet. The document verification service (document verification apparatus)  110  implements the verification again only in a case where a change that influences a verification result is made to a document and document schema. If the change partially influences the verification result, the document verification service (document verification apparatus)  110  implements the process that performs verification only on a potion that is influenced. Accordingly, the workload of the verification process on an electronic document is reduced to improve the whole processing efficiency. 
     In an itinerary making service employed in the embodiments of the invention, the travel agency  109  receives an itinerary request from the user client  108  and generates an itinerary, while checking status of booking of the hotel  101 , the first car rental company  102 , the second car rental company  103 , the first airline  105 , the second airline  106 , and the railroad company  107 , and outputs the itinerary in a unified natural language requested by a user such as Japanese or English. 
     More specifically, when the itinerary request is sent to the travel agency  109  from the user client  108 , the travel agency  109  respectively requests the railroad company  107  for a railroad reservation, the first airline  105  for an airline reservation, the second airline  106  for an airline reservation, the first car rental company  102  for a rental car reservation, the second car rental company  103  for a rental car reservation, the hotel  101  for a room reservation, and the translation service  104  for translation. Then, upon receiving tentative reservation results or translation results, the travel agency  109  arranges an itinerary plan and sends the itinerary plan to the user client  108 . The document verification service  110  is provided for implementing the validity verification process of the document. 
       FIG. 3  shows the itinerary request that the user client  108  issues to the travel agency  109 . In the second line of the document shown in  FIG. 3 , itineraryRequest elements includes xmlns:xsi attribute and xsi:noNamespaceSchemaLocation attribute. These attributes are specified in W3C XML Schema Standard to supply keys to a processing program to identify the document schema that corresponds to the document. The attributes are used in the documents to be described below. However, according to the W3C XML Schema Standard, “the processing program may identify the document schema with the use of keys other than these attributes”. Therefore, even if the afore-described attributes are eliminated from the document shown in  FIG. 3  and the documents to be described below and another method is employed to correspond to the document schema and the document, the similar effects to be described in the embodiments hereinafter are obtainable. A description is now given of alternative exemplary method of corresponding the document schema to the document. When each of the services is realized by a Web service, the document schema that corresponds to an input/output document to/from the service may be described or referred to, as a portion of Web Service Description Language (WSDL) that is generated and released for each service. 
       FIG. 4  through  FIG. 18  show documents that are generated and used for implementing a series of processes illustrated as a sequence chart in  FIG. 2 , when the itinerary request is input into the present service.  FIG. 4  shows a schema of the itinerary request. This schema conforms to the W3C XML Schema Standard. 
       FIG. 5  shows an itinerary draft, which is generated by the travel agency  109  and sent to the railroad company  107 . The value of status attribute of a travel element (in the eighth line and in the fifty-fourth line) is set to “requested”. The value will be described below with reference to  FIG. 6 . In the second line in  FIG. 5 , an itineraryinProcess element includes xml:lang attribute. This attribute is specified in the XML Standard to indicate the language of the character data such as Japanese, English, or the like in the content of the document element that includes the attribute. 
       FIG. 6  shows a schema of the itinerary draft. A travel element represents a conduct of traveling, and a stay element represents a conduct of lodging. If the values of status attribute of these elements are “inactive”, which represents “not reserved yet”. If the values thereof are “requested”, which represents “reservation in process”. If the values thereof are “reserved”, which represents “already reserved”. 
       FIG. 7  shows the itinerary draft, which is sent back to the travel agency  109  from the railroad company  107 . The railroad company  107  makes a reservation for the travel element having the status attribute of “requested”. If the reservation is made, a method element indicating the reservation content is added to the end of the travel element, and the value of the status attribute is changed to “reserved”.  FIG. 8  shows the itinerary draft, which is sent to the first airline  105  from the travel agency  109 . In the twenty-second line and in the fifty-second line, the status attribute of the travel element is set to “requested”. 
       FIG. 9  shows the itinerary draft, which is sent back to the travel agency  109  from the first airline  105  and is then sent to the second airline  106  from the travel agency  109 . The first airline  105  only makes a reservation that corresponds to the travel element in the twenty-second line. Accordingly, the value of the status attribute of the travel element in the twenty-second line is changed to “reserved”. The travel agency  109  requests the second airline  106  for a reservation that corresponds to the travel element in the fifty-seventh line.  FIG. 10  shows the itinerary draft, which is sent back to the travel agency  109  from the second airline  106 . The second airline  106  makes a reservation that corresponds to the travel element in the fifty-seventh line. Accordingly, the value of the status attribute of the travel element in the fifty-seventh line is changed to “reserved”. 
       FIG. 11  shows the itinerary draft, which is sent to the first car rental company  102  from the travel agency  109 , is sent back from the first car rental company  102 , and is then sent to the second car rental company  103  from the travel agency  109 . In the thirty-sixth line and in the fiftieth line, the value of the status attribute of the travel element is set to “requested”. The first car rental company  102  is unable to arrange a rental car, and the itinerary draft is sent back to the travel agency  109  without change.  FIG. 12  shows the itinerary draft, which is sent back to the travel agency  109  from the second car rental company  103 . Accordingly, in the thirty-sixth line and in the fifty-fifth line, the value of the status attribute of the travel element is changed to “reserved”. 
       FIG. 13  shows the itinerary draft, which is sent to the hotel  101  from the travel agency  109 . In the fiftieth line, the value of the status attribute of the stay element is set to “requested”.  FIG. 14  shows the itinerary draft, which is sent back to the travel agency  109  from the hotel  101 . The hotel  101  arranges the reservation, adds the result to the itinerary draft, and sends a reply to the itinerary draft to the travel agency  109 .  FIG. 15  shows the itinerary draft, in which the travel agency  109  fills in missing information. The travel agency  109  changes the status attribute in the thirty-sixth line and in the fifty-fifth line to “reserved”, and adds lang attribute and the contents thereof of a place element in the forty-second line and in the fifty-seventh line. 
       FIG. 16  shows the itinerary that the travel agency  109  generates with the use of the itinerary draft and is sent to the translation service  104 . The travel agency  109  extracts only information necessary for the itinerary, a final output, from the information in the itinerary draft. The itinerary is partially written in English, and is sent to the translation service  104  in order to convert into Japanese desired by the user.  FIG. 17  shows a schema of the itinerary.  FIG. 18  shows the itinerary, which is sent back to the travel agency  109  from the translation service  104 , and is sent to the user from the travel agency  109 . The itinerary sent back from the translation service  104  is sent to a user  116  via the user client  108 . 
     [Role of Document Verification Service] 
     The document verification service  110  is not shown in the sequence chart in  FIG. 2 . However, when the document (itinerary request, the itinerary draft, or the itinerary) is sent to the respective services (the hotel  101 , the first car rental company  102 , the second car rental company  103 , the translation service  104 , the first airline  105 , the second airline  106 , the railroad company  107 , and the travel agency  109 ) that are included in the itinerary making service, the respective services of the sending destinations output the document to the document verification service  110  to request for the validity verification process. 
     When the documents are sent and received between the services, not only the documents but also a sent and received document that includes the above-mentioned document are actually sent and received.  FIG. 19  shows the sent and received document used, when the first car rental company  102  requests the document verification service  110  for the validity verification process. 
     Referring to  FIG. 19 , the sent and received document is realized as a SOAP document, and the document to be sent and received is represented as the content of a SOAP body (Body element from the sixth line to the ninety-second line). The contents of a SOAP header (Header element from the third line to the fifth line) include the information necessary for process implemented by the document verification service  110  as a validatorID element (to be described below in accordance with a first embodiment) or a digest element (to be described below in accordance with a second embodiment and later). The content of the validatorID element includes an identifier applied to the document that is the content of the SOAP body. The content of the digest element includes a digest value of the document. The value of a validity attribute represents a true value of the process result of a document, which is the content of the SOAP body, when the validity verification process is performed on the document most recently. 
     The service that has requested the document verification service  110  for the validity verification process receives the sent and received document from the document verification service  110 , refers to the value of the validity attribute of the validatorID element or the digest element in the SOAP header, and obtains the result of the validity verification process. If the validity verification process is successful, a given process is performed on the document. If unsuccessful, a give error process is performed. 
     First Embodiment 
     A first embodiment of the invention will be described. The first embodiment is an exemplary embodiment where documents are compared. A consideration is given to a situation when the itinerary draft shown in  FIG. 11  is sent to the first car rental company  102  from the travel agency  109  and is then sent back to the travel agency  109  without change. At this time, the itinerary draft becomes a processing object of the validity verification process to be implemented by the document verification service  110 , when the itinerary draft is sent to the first car rental company  102  and when the itinerary is sent back to the travel agency  109 . In the document verification service  110  employed in accordance with the present embodiment, the validity verification process does not have to be implemented when the itinerary draft is sent back to the travel agency  109 , thereby realizing the promotion of efficiency in processing. 
       FIG. 20  is a block diagram of a system in accordance with the first embodiment of the invention. The system  100  is provided with the first car rental company  102 , the travel agency  109 , and the document verification service  110 . These are connected to each other via a network  120 . The document verification service  110  includes a sent and received document retaining portion  111 , a verified document retaining portion  112 , a document canonicalization portion  113 , a document verifying portion  114 , and a verification process controlling portion  115 . In  FIG. 20 , data flows are indicated by arrows. 
     The sent and received document retaining portion  111  retains the sent and received document that has been input, applies an identifier to the document to be verified, and also retains a copy of a verification result. The verified document retaining portion  112  retains a set of a value obtained as a result that one-directional function process is applied when an electronic document is verified most recently and the verification result, in association with the electronic document that has been verified. 
     The verification process controlling portion  115  controls the whole verification process, and determines whether a change that influences the verification result is made to the electronic document or condition, after it is verified whether such input electronic document satisfies a given condition. Here, the given condition denotes a condition defined by a given schema if the electronic document is a structured document. If the verification process controlling portion  115  determines that a change is made to the electronic document or to the condition, the verification process controlling portion  115  implements the verification to see whether the electronic document satisfies a given condition and the verification result is output. If it is determined that a change is not made, the verification process controlling portion  115  refers to the verified document retaining portion  112  to output the result of the time when it is verified whether or not the electronic document satisfies the above-described condition most recently, as a verification result. Here, if there is no most recent verification result, the verification process controlling portion  115  verifies to see whether the electronic document satisfies a give condition and then outputs the result. 
     The verification process controlling portion  115  determines that a change that influences the verification result is made to the electronic document, when the information obtained by performing a given calculation on the electronic document at the time when the electronic document is verified most recently is different from the information obtained by performing the given calculation on such input electronic document. The afore-described given calculation includes a preprocessing. The preprocessing includes the canonicalization process. The canonicalization process is executed on the document canonicalization portion  113 . The canonicalization process is a process that absorbs the fluctuations of description generated by the processes (such as addition of space or linefeed mark, conversion of character code, or the like) unrelated to the original functions of the individual programs. By implementing the canonicalization process on the document, it is possible to produce the documents that should be considered identical to have an identical notation. This facilitates the determination of identity. The document verifying portion  114  is provided for verifying the document. So, when the electronic document is a structured document, the document verifying portion  114  verifies to learn whether the structured document satisfies the condition defined by a given document schema. 
       FIG. 22  shows a document retained in the verified document retaining portion  112  in the above-mentioned situation. In  FIG. 22 , a SOAP document mainly has a header part (from the third line to fifth line in  FIG. 22 ) and a body part (from the sixth line to the ninety-fourth line in  FIG. 22 ). The validatorID element in the fourth line of  FIG. 22  retaines the identifier (the content of the validatorID element) of the document retained in the SOAP body and in the validity verification result (the value of the validity attribute) of the document. 
       FIG. 23  shows sent and received document to be input into the document verification service  110  from the first car rental company  102 . In the document in the SOAP body in  FIG. 23 , the value of the status attribute of the travel element is changed to “requested” from “inactive” in the fourty-first line and in the fifty-fifth line. The SOAP header of the sent and received document has an identical identifier as that of the document in  FIG. 22 . 
     Next, the process flow of the document verification service  100  is described.  FIG. 21  exemplarily shows a flow chart of processes in the verification process controlling portion  115  in accordance with the first embodiment of the invention. A subroutine CANONICALIZE and a subroutine VALIDATE are activated in the process shown in  FIG. 21 , and are respectively executed by the document canonicalization portion  113  and the document verifying portion  114 . 
     When the sent and received document in  FIG. 23  is input into the document verification service  110 , the process in  FIG. 21  is activated. At step S 1241 , the verification process controlling portion  115  assigns the content of the SOAP body to a variable X. If the document identifier is not applied to the document retained as a value of the variable X at step S 1242 , the document identifier is newly issued to assign to the document retained as a value of the variable X at step S 1243 , and processing goes to step S 1249 . If the document identifier is applied to the document retained as a value of the variable X at step S 1242 , the document having the document identifier of the document retained as a value of the variable X is obtained from the verified document retaining portion  112  and is assigned to a variable Y at step S 1244 . Since the document in the SOAP body in  FIG. 23  has the identifier, the document (shown in  FIG. 22 ) having such identifier is obtainable form the verified document retaining portion  112 . The document canonicalization portion  113  executes the subroutine CANONICALIZE with the value of the variable X serving as an argument. The subroutine CANONICALIZE implements the canonicalization process. 
     The output from the subroutine CANONICALIZE and the variable Y are compared at step S 1246 . If they are identical, the verification result corresponding to the document having the variable Y is applied to the sent and received document at step S 1248 , and processing goes to step S 12412 . That is to say, when the first car rental company  102  sends a reply with the document shown in  FIG. 11  to the travel agency  109 , without changing the document shown in  FIG. 11 , and the travel agency  109  requests the document verification service  110  to implement the verification process of the document shown in  FIG. 23 , both documents are determined identical, because the documents compared at step S 1246  are those shown in  FIG. 23 . Accordingly, the subroutine VALIDATE is skipped. In this manner, the validity verification process can be eliminated when the sent and received document is sent back to the travel agency  109 , by utilizing the document verification service employed in the present embodiment, thereby improving the processing efficiency. 
     If the output from the subroutine CANONICALIZE and the variable Y are not identical at step S 1246 , the document having the variable Y is deleted from the verified document retaining portion  112  at step S 1247 . In  FIG. 23 , as described above, the output from the subroutine CANONICALIZE and the variable Y are not identical, the document shown in  FIG. 22  is deleted from the verified document retaining portion  112  at step S 1247 . At step S 1249 , the document verifying portion  114  performs the subroutine VALIDATE with the variable X serving as an argument. In the subroutine VALIDATE, the validity verification process is implemented on the document schema of the document, and the verification result is output as a truth-value. At step S 12410 , the document retained as a value of the variable X and the output from the subroutine VALIDATE are applied to the verified document retaining portion  112 . In accordance with the present embodiment, the subroutine VALIDATE returns “true”, and the document shown in  FIG. 23  is added to the verified document retaining portion  112 . At step S 12411 , the output from the subroutine VALIDATE is applied to the sent and received document. At step S 12412 , the sent and received document is sent back. In other words, the document shown in  FIG. 23  is sent back to the first car rental company  102  without change. 
     The canonicalization process for XML document includes Canonical XML and Exclusive XML Canonicalization. At step S 1224 , any of the canonicalization process is executed on the basis of the specification thereof. The detailed processes executed in the canonicalization process are categorized into the processes implemented by an XML processor (which is a program that reads the XML document and provides an access to the content and structure thereof, and is specified in the XML standard) and canonicalization-specific processes. Such categorization processes respectively include zero or more processes described below. 
     (Processes Executed by the XML Processor)
         Standardize linefeed marks to #xA   Canonicalization of the attribute value   Replace CDATA section with character content   Replace character reference and entity reference to be analyzed (canonicalization-specific process)   Standardize the character code to UTF-8   XML declaration and DTD deletion   Replace start tag and end tag of an empty element to form a set   Standardize separating character of the attribute value to double quotation mark   Delete redundant name space declaration   Setting of default attribute value   Sort of document element attribute and name space declaration       

     The order relations of the document element attribute and name space declaration specified in Section 2.2 XML Canonicalization Standard are described as follows:
         The name space declaration appears before the document element attribute.   The name space declaration is sorted by the name of the name space (local name).   The document element attribute is sorted by a primary key of a name space URI and by a secondary key of a name (local name).       

     According to the present embodiment, the validation verification process needs not to be executed, when the sent and received document is sent back to the travel agency  109 , enabling the processing efficiency to be improved. 
     Second Embodiment 
     A second embodiment of the invention is described. The second embodiment is an exemplary embodiment in which the digest values are compared. In the second embodiment, a consideration is given to a situation when the itinerary draft shown in  FIG. 11  is sent to the first car rental company  102  from the travel agency  109  and is then sent back to the travel agency  109  without change. At this time, the itinerary draft becomes a processing object of the validity verification process to be implemented by the document verification service  110 , when the itinerary draft is sent to the first car rental company  102  and when the itinerary is sent back to the travel agency  109 . 
       FIG. 24  is a view showing a system structure in accordance with the second embodiment of the invention. A system  200  includes the first car rental company  102 , the travel agency  109 , and a document verification service  210 , which are connected on the network  120  such as the Internet. The document verification service  210  is provided with the sent and received document retaining portion  111 , the document canonicalization portion  113 , the document verifying portion  114 , the verification process controlling portion  115 , and a digest value calculating portion  211 . In  FIG. 24 , data flows are indicated by arrows. The document verification service  210  retains the sent and received document that has been input in the sent and received document retaining portion  111 , and the process is activated by the verification process controlling portion  115 . 
     The verification process controlling portion  115  determines that the change that influences the verification result has been made to the electronic document, when the information obtained by performing a given calculation on the electronic document when the electronic document is verified most recently is different from the information obtained by performing a given calculation on the electronic document that has been input. The afore-described given calculation includes one-directional function process implemented by the digest value calculating portion  211 , in addition to the preprocessing described in the first embodiment. 
       FIG. 25  exemplarily shows a flow chart of processes of the verification process controlling portion  115  in accordance with the second embodiment.  FIG. 28  shows the sent and received document that is input into the document verification service  210  from the first car rental company  102 , when the first car rental company  102  requests for the validity verification process. At step S 1041 , the verification process controlling portion  115  assigns the content of the SOAP body to the variable X. That is to say, the document shown in  FIG. 11  is assigned to the variable X. A subroutine EVALUATE is executed with an argument of the variable X, at step S 1042 . The output from the subroutine EVALUATE is corresponded to the variable X at step S 1043 . That is to say, at step S 1043 , a set of the values output at step S 1042  are associated with a document retained as a value of the variable X, and are written into the SOAP header of the sent and received document.  FIG. 31  shows the sent and received document when step S 1043  is completed. 
     At step S 1044 , the sent and received document shown in  FIG. 31  is sent back to the first car rental company  102 , and processing ends. The first car rental company  102  refers to the value of the validity attribute of the digest element in the fourth line in the sent and received document shown in  FIG. 31 , and learns that the validity verification process has been completed successfully, and then implements the process on the document. In accordance with the present embodiment, the first car rental company  102  sends the sent and received document shown in  FIG. 31  to the travel agency without change. 
       FIG. 26  is a flow chart of processes of the subroutine EVALUATE implemented at step S 1042 . The processes are executed by the verification process controlling portion  115 . At step S 1051 , the subroutine CANONICALIZE is executed on an input document to generate a Document Object Module (DOM) tree with the document shown in  FIG. 11 . DOM is a model and interface to access the model of processing the structured document such as XML document as a tree having nodes of objects representing document (DOCUMENT), document element (ELEMENT), document element attribute (ATTRIBUTE), attribute value (TEXT), and character data (TEXT), instead of processing the structured document as a text document.  FIG. 29  shows a DOM tree to be generated. In  FIG. 29 , each line represents each node that makes up the DOM tree. The type of node is expressed by a character string from the beginning of each line to “:”. For example, the type of the node in the first line is a DOCUMENT node that represents the whole document. If the node representing the document element (ELEMENT node) or the document element attribute (ATTRIBUTE node), the element name of attributer name is shown subsequent to “:”. If the node represents the text (TEXT node), the text data is shown subsequent to “:”. 
     Indent from the line head represents a parent-child relationship between nodes. For example, the DOCUMENT node in the first line is a parent node of the ELEMENT node in the second line. The ELEMENT node in the second line has child nodes of the ATTRIBUTE nodes in the third, fifth, and seventh lines and the ELEMENT nodes in the ninth and fourteenth lines.  FIG. 30  shows descriptions of the respective nodes from the first line to the forty-second line shown in  FIG. 29 . 
     At step S 1052 , a subroutine GET_DIGEST is implemented on the output. If there is no old digest value in the document at step S 1053 , processing goes to step S 1055 . As a result of referring to the digest element (in the fourth line) in the SOAP header of the sent and received document on the sent and received document retaining portion  111  (see  FIG. 28 ), it is determined that an old digest value is applied to the document and processing goes to step S 1054 . It is determined whether the old digest value and a new digest value output from a subroutine GET_DIGEST are identical. If the new digest value and the old digest value are identical, output are a set of the old digest value and a result of a most recent result of a subroutine VALIDATE at step S 1057 . 
     If the new digest value and the old digest value are not identical at step S 1054 , processing goes to step S 1055 . In the present embodiment, the new digest value and the old digest value are not identical, processing goes to step S 1055  and the subroutine VALIDATE is executed. In the subroutine VALIDATE, the validity verification process is implemented on the document for the document schema, the verification result is output in a truth-value. In the present embodiment, “true” is output as a result of the validity verification process. At step S 1056 , a set of the following subroutine VALODATE and the new digest value are output, and step S 1042  is completed. 
     “true”, “3bebcec335f6e46bfe3563897ee544e0” 
     The subroutine CANONOCALIZE at step S 1051  generates the DOM tree with the input document as an exemplary canonicalization process. The DOM tree is generated by the XML processor having a DOM interface. The process by the XML processor is also implemented here, out of the canonicalization processes described in the first embodiment. 
     Before the DOM tree is output, the following processes are to be implemented.
         Standardize the character code to UTF-8   Delete redundant name space declaration   Setting of default attribute value   Sort of document element attribute and name space declaration       

     Meanwhile, in the embodiments of the invention, including the present embodiment, when the DOM tree is generated with the input document, the node to be deleted is the TEXT node having a sibling node of the ELEMENT node and the content thereof is made up with only a blank character such as space, return, line feed, and tab. The XML standard allows a blank character to be inserted between the document elements included in the content that corresponds to the element content model in the document schema. However, the blank character does not influence the verification process result. The content models defined by the document schema to be used in the embodiment of the invention, including the present embodiment, are all element content models. Accordingly, even if the blank character is deleted in the TEXT node as stated above, the verification process result is not influenced. Also, according to the specification of DOM, a DOM tree is composed of the relationship between the document element and the content, and the relationship between the document element and the document element attribute is not included in the DOM tree. However, according to exemplary embodiments of the invention, including the present embodiment, not only the former relationship but also the latter relationship are to be included in the DOM tree. 
       FIG. 27  is a flow chart of processes of the subroutine GET_DIGEST at step S 1052 . The processes are implemented on the digest value calculating portion  211 . At step S 1061 , the digest value calculating portion  211  sequentially applies a DOMHASH algorithm onto the respective nodes of the DOM tree to obtain the digest values. At step S 1062 , the digest values are encoded and output. The digest value output from the subroutine GET_DIGEST is shown as below: 
     3bebcec335f6e46bfe3563897ee544e0 
     In the afore-described processes, the respective nodes of the DOM tree have to be ordered so as to apply the DOMNASH algorithm to the nodes of the DOM tree. Retrieval sequence such as depth first order algorithm or breadth first order algorithm may be employed. 
     The DOMHASH algorithm calculates the digest values of the nodes for text, processing instruction, document element attribute, document attribute, and document, among the nodes that compose the DOM tree. When the DOMHASH algorithm is utilized in the exemplary embodiments of the invention, the process of calculating the digest value of the node for processing an instruction is not implemented. As a hush function used in the DOMHASH algorithm, MD5 algorithm, SHA algorithm, SHA1 algorithm, or the like can be utilized. However, SHA1 algorithm is employed in the present embodiment and in other exemplary embodiments of the present invention. 
     [Validity Verification Process Requested by the Travel Agency] 
     Upon receiving the sent and received document, the travel agency  109  requests the document verification service  210  for the validity verification process. At this time, the digest value output from the subroutine GET_DIGEST at step S 1052  is shown as below. 
     3bebcec335f6e46bfe3563897ee544e0 
     At step S 1053 , as a result of reference to the digest element (in the fourth line) in the SOAP header of the sent and received document (see  FIG. 28 ) on the sent and received document retaining portion  111 , it is determined that the old digest value is applied to the document and processing goes to step S 1054 . At step S 1054 , it is determined whether the old digest value and the digest value output from the subroutine GET_DIGEST are identical. Here, since both digest values are identical, the old digest value and the result of the most recent subroutine VALIDATE are read out of the digest element and output at step S 1057 , and step S 1042  is completed. 
     At step S 1043 , the set of values output at step S 1042  are associated with the document that is the value of the variable X, and are written into the SOAP header of the sent and received document. Here, the set of the values output at step S 1042  are identical to the contents of the digest element in the SOAP header of the sent and received document on the sent and received document retaining portion  111 , and accordingly, the sent and received document is not changed. At step S 1044 , the sent and received document shown in  FIG. 31  is sent to the travel agency  109 , and processing ends. 
     As stated, by using the document verification service  210  employed in the present embodiment, the digest values are used for comparing the current document and the document that was a target of the verification process most recently. This eliminates the necessity of implementing the validity verification process when the document is sent back to the travel agency  109 , and in addition, eliminates the necessity of storing the document that was a target of the verification process most recently, thereby reducing the memory area to be needed drastically. Also, the digest value at the processing the verification most recently can be distributed with the document, eliminating the costs to manage a document identifier. 
     In the exemplary embodiments of the invention, it is based on the assumption that the document obtained as a result of executing the subroutine CANONICALIZE at the document verification service  210  is not output from the document verification service  210 . However, the verification process with the use of W3C XML Schema, in some cases, includes the process of changing the document, such as the process of reflecting a default value of the content of the document element that is defined in the document schema on the document element of the document. For example, when the document shown in  FIG. 6  is verified by the document schema shown in  FIG. 32 , the default value “TBD” is added, as the value of the place element (as shown in the twenty-seventh line), to the document shown as the verification result (see  FIG. 33 ). 
     When the changed document is used for another service, it may be configured in such a manner that the document on the sent and received document retaining portion  111  is exchanged with the document output from the subroutine CANONICALIZE, and the digest value and the set of the true values are output, the digest value being output as a result of executing the subroutine GET_DIGEST on the document output from the subroutine CANONICALIZE, the true value being an output from the subroutine VALIDATE. That is to say, the verification process controlling portion  115  outputs the verification result, the changed document, and the information obtained by performing a given calculation on such changed document. 
     Third Embodiment 
     A third embodiment of the invention is described. The third embodiment is an exemplary embodiment where the digest value is calculated from a text expression. The document verification service employed in the third embodiment is the similar as the document verification service employed in the second embodiment, except the contents of the subroutine CANONICALIZE (step S 105 ) and those of the subroutine GET_DIGEST (step S 1052 ). Also in the third embodiment, a description will be given with reference to  FIG. 24 . The preprocessing performed by the verification process controlling portion  115  is a process of generating a tree with the nodes that neither includes the document element nor the document element attribute from the string expression of the electronic document. A process is shown as an example, where the process to which the digest value calculating portion  211  applies one-directional function is a process of applying the digest function that includes the MD5 algorithm or the SHA1 algorithm. The subroutine CANONICALIZE of the document verification service  210  used in accordance with the present embodiment implements the similar processes as those of the subroutine CANONICALIZE (step S 1245 ) employed in the first embodiment, and the explanation is omitted here. 
       FIG. 34  exemplarily shows a flowchart of processes of the subroutine GET_DIGEST executed by the verification process controlling portion  115  in accordance with the third embodiment. At step S 1071 , the digest value is output as an expression of the document text. Although the digest value is calculated by way of the DOM tree from the document in the subroutine GET_DIGEST employed in the second embodiment (see  FIG. 27 ), the digest value is calculated by the expression of the document text in accordance with the present embodiment. The MD5 algorithm, the SHA algorithm, the SHA1 algorithm, or the like may be used as a hash function for calculating the digest value. At step S 1072 , the digest value is encoded and output. The encode process is a process of converting the digest value output as binary data, into the text data. Here, in the respective exemplary embodiments of the invention, the new and old digest values are compared after encoded. However, it is possible to retain the digest value with the binary data without changing and obtain the similar effects without implementing the encode process. 
     The document verification service  210  enables to obtain the similar effects as those of the document verification service used in the second embodiment. Specifically, similarly as described in the second embodiment, a consideration is given to a situation where the itinerary draft shown in  FIG. 11  is sent to the first car rental company  102  from the travel agency  109 , and the itinerary draft is sent back to the travel agency  109  without change. At this time, the validity verification process needs not to be performed on the document verification service  210  used in the present embodiment, thereby enabling the process to be facilitated. 
     In accordance with the present embodiment, the canonicalization process, similarly as described in the first embodiment, is implemented by the subroutine CANONICALIZE, and accordingly the output from the subroutine CANONICALIZE is expressed by text of the XML document. On the other hand, as specified in the XML Canonicalization Standard, the canonicalization process can be performed not only for the text representation of the XML document but also for an XPath node set. By use of this, it may be configured in such a manner that the XPath node set (a tree having the nodes of the document element, the document element attribute, and the contents that do not include the document element) is generated from the text representation of the document (string representation of the electronic document) and the digest value is directly calculated by the XPath node set without returning to the text representation of the document after the canonicalization process that conforms to the XML Canonicalization Standard is implemented. 
     Fourth Embodiment 
     A fourth embodiment of the invention is described. The fourth embodiment is an exemplary embodiment where a sampling function is employed. In accordance with the fourth embodiment, the process of applying the one-directional function performed by the digest value calculating portion  211  is a process of applying a pseudo-random algorithm that has a repeatability that includes a linear congruential method or Mersenne Twister. That is to say, the document verification service employed in the fourth embodiment is basically similar to that described in the third embodiment, except that a combination of a function of calculating the number of characters or bites and the pseudo-random algorithm that has repeatability that includes a linear congruential method or Mersenne Twister, whereas the hash function such as MD5 algorithm or SHA1 algorithm used at step S 1071  performed by the digest value calculating portion  211  of the document verification service in the third embodiment. 
     The combination of the functions outputs a set of the number of characters or bites in a document and a sample character string. Referring to  FIG. 24  again, the present embodiment is described. In the present embodiment, 32 is an example of the number of characters in the sample character string. Instead of the method employed in accordance with the present embodiment, the function of calculating the number of characters or the number of bites in the document and the pseudo-random algorithm having repeatability that includes a linear congruential method or Mersenne Twister may be used together and applicable to not only the document verification service employed in the third embodiment but also to the document verification service employed in the second embodiment at step S 1061 . 
     In the present embodiment, in a similar fashion as described in the first embodiment, a consideration is given to a situation when the itinerary draft shown in  FIG. 11  is sent to the first car rental company  102  from the travel agency  109  and is then sent back to the travel agency  109  without change.  FIG. 35  shows an exemplary sent and received document transmitted to the first car rental company  102 . The digest element in the fourth line retains the verification result (value of the validity attribute), the number of characters in the document (value of documentLength attribute), and a sample character string (content), when the document is verified by the document verification service most recently. However, “&lt;”, a starting character of a tag and “&amp;”, a starting character of character reference may appear in the sample character string. Accordingly, the sample character string is described in a CDATA section with the afore-mentioned starting characters considered as a character. 
       FIG. 36  exemplarily shows a flowchart of processes of the subroutine EVALUATE performed by the verification process controlling portion  115  of the document verification service  210  in accordance with the present embodiment. At step S 1081 , the subroutine CANONICALIZE is executed on the document input. At step S 1082 , the subroutine GET_DIGEST is executed on the output from the subroutine CANONICALIZE. When the sent and received document shown in  FIG. 35  is input into the document verification service  210  employed in the present embodiment, the number of the characters and the sample character string output from the subroutine GET_DIGEST are shown below (double quotes are excluded). 
     “2923” 
     “annl 5ee0/n5 tu ri=dlma00at100p” 
     At step S 1083 , if an old set (of the number of characters and the sample character string) is applied to the document, processing goes to step S 1084 . If not, processing goes to step S 1085 . At step S 1084 , if a new number of characters equals to an old number of characters and a new sample character string equals to an old sample character string, a set of old (number of characters and sample character string) and the result output most recently from the subroutine VALIDATE are output at step S 1087 . At step S 1084 , if a new number of characters equals to an old number of characters, and a new sample character string does not equal to the old sample character string, processing goes to step S 1085 . In the present embodiment, the value output from the subroutine GET_DIGEST at step S 1082  is different from the number of characters and the sample character string described in the digest element in the fourth line in  FIG. 35  at step S 1084 , and processing goes to step S 1085 . 
     At step S 1085 , the subroutine VALIDATE is executed on an input document. At step S 1086 , the set of new (number of characters and sample character string) and the result output from the subroutine VALIDATE is output. In accordance with the present embodiment, “true” is output as a result of the afore-mentioned number of characters in the document, the sample character string, and the subroutine VALIDATE. This result is shown in  FIG. 39 .  FIG. 39  shows the sent and received document sent back to the first car rental company  102 . With respect to the sent and received document shown in  FIG. 35 , the value of the digest element in the fourth line is renewed. 
       FIG. 37  exemplarily shows a flowchart of processes of the subroutine GET_DIGEST executed by the digest value calculating portion  211 . At step S 1091 , the digest value calculating portion  211  calculates the number of characters and the sample character string in the document. At step S 1092 , the number of characters and the sample character string are output. 
       FIG. 38  exemplarily shows a flowchart of processes implemented at step S 1091 . At step S 1101 , the digest value calculating portion  211  assigns the number of sample character strings to a variable A, 0 to a variable B, and an empty character string to a variable C. At step S 1102 , control characters (such as linefeed character, tab, and the like) are removed from the input document. At step S 1103 , the number of characters in the document is assigned to a variable D. At step S 1104 , if the value of the variable A is greater than the value of the variable B, one positive integer equal to or smaller than the variable D is randomly generated and assigned to a variable E, at step S 1105 . The pseudo-random algorithm that includes a linear congruential method or Mersenne Twister is used at step S 1105 . At step S 1106 , the (the value of the variable E)-th character in the document is added to an end of the variable C. At step S 1108 , the variable B is incremented by one and returns to step S 1104 . At step S 1104 , if the variable A is not greater than the variable B, the value of variable D and the value of the variable C are output at step S 1109 . 
     Next, a consideration is given to a situation where the sent and received document shown in  FIG. 39  is sent back to the travel agency  109  from the first car rental company  102 . The travel agency  109  requests the document verification service  210  for the validity verification process again. At this time, the number of characters in the document and the sample character string output from the subroutine GET_DIGEST are shown as follows, and correspond to the number of characters and the sample character string output from the subroutine GET_DIGEST described in the digest element in the fourth line in  FIG. 39 . 
     “2923” 
     “annl 5ee0/n5 tu ri=dlma00at100p” 
     Processing goes to step S 1087 , and is capable of skipping the subroutine VALIDATE, thereby enabling the improved efficiency of the process. 
     Fifth Embodiment 
     A fifth embodiment will be described. The document verification service  210  employed in the fifth embodiment performs a digest value calculation process on the result where a portion that does not influence the validity verification process result is deleted from the document. Also in the present embodiment, a description is given with reference to  FIG. 24 . 
     In a case where the document schema conforms to W3C XML Schema specification, even if the processing instruction in the document or the content in a string type is excluded from the document, this does not influence the validity verification process result. Therefore, in accordance with the present embodiment, if the electronic document is an XML document, the verification process controlling portion  115  excludes character data (“A child is three years old” in the sixth line in  FIG. 42 ) included in the content that corresponds to a mixed content model in the CDATA section, comment, processing instruction, and document schema, as a portion that does not influence the verification result. 
     When the XML document is input as an electronic document and W3C XML Schema is input as a document schema, the verification process controlling portion  115 , as a portion that does not influence the verification result, excludes from the XML document, the content that does not include another element or the value of the document element attribute that should have the content of a string type, in the contents of the document element that should have the content of the string type defined by W3C XML Schema. It is possible to improve the efficiency of the digest value calculation process by calculating the digest value, the number of characters, and the sample character string, after the afore-mentioned content is excluded. 
     The document verifying portion  114  employed in the present embodiment processes the document element having the content of the character data only, while the validity verification process is being carried out. Then, the document verifying portion  114  adds a contentType attribute of the document element, and sets the character string that corresponds to the data type of the character data of the content, as a value thereof. Also, after the document element that corresponds to the element type having the mixed content model is processed, the content-Type attribute is added to the document element, and the value thereof is set to “mixed”. 
       FIG. 40  shows a document obtained as a result of implementing an addition processing on the document to be sent to the first car rental company  102  from the travel agency  109 . As compared to the document shown in  FIG. 11 , the data type of the character data is added as the contentType attribute of the document element having the content of the character string (an example is an adult element in the fourth line).  FIG. 41  shows a document schema that corresponds to a document to be sent to the first car rental company  102  from the travel agency  109 .  FIG. 42  shows a document obtained as a result of the addition processing. As compared to the document shown in  FIG. 40 , the character data of “A child is three years old” (this is actually written in Japanese in the drawings) is added to immediately below a passengers element. As an attribute of the passengers element having a mixed content model, the contentType attribute is added and the value thereof is set to “mixed”. 
       FIG. 43  exemplarily shows a flowchart of processes of the subroutine CANONICALIZE in accordance with the present embodiment. At step S 1121 , a tree T is set to empty, a pointer P is set to an initial character of the document. If the pointer P does not reach the end of the input document t step S 1122 , the pointer P is moved and one node is generated at step S 1123 . If such generated node satisfies a condition #1: “the generated node is any one of character node, document element node, document element attribute node, and text node” at step S 1124 , processing goes to step S 1125 . If not, processing goes to step S 1126 . At step S 1125 , the generated node is added to the tree T. If the generated node satisfies a condition #2: “there is an attribute node having a name of “contentModel” immediately below the generated node, and there is a text node having a value of “string” immediately below the attribute node” at step S 1126 , processing goes to step S 1127 . If not, processing goes to step S 1128 . 
     At step S 1127 , deleted is a partial tree having a top of the attribute node that is the text node having a name of “contentModel” and is provided immediately below the generated node. If the generated node satisfies a condition #3: “there is an attribute node having a name of “contentModel” immediately below the generated node, and there is a text node having a value of “mixed” immediately below the attribute node” at step S 1128 , processing returns to step S 1122 . At step S 1129 , deleted are the text node immediately below the generated node and a partial tree having a top that is an attribute node having the name of “contentModel”, and processing goes back to step S 1122 . At step S 1122 , when the pointer P reaches the end of the input document, the tree T is output at step S 11210 . 
       FIG. 44  shows a DOM tree obtained when the document shown in  FIG. 40  and the document shown in  FIG. 42  are respectively input into the subroutine CANONICALIZE. In  FIG. 44 , the nodes that do not influence the validity verification process result, such as nodes  24 ,  33 , and  38 , are excluded. Accordingly, there are 148 nodes, whereas there are 160 nodes in  FIG. 29 . The node that corresponds to the character data “A child is three years old.” is excluded, whereas the character data is added to the document shown in  FIG. 40 , resulting in the document shown in  FIG. 42 . Accordingly, it is possible to realize the efficiency of the process of calculating the digest value, which is a post-processing. 
     In accordance with the present embodiment, the document is converted into the DOM tree, and then the node corresponding to the portion that does not influence the verification process result is deleted. However, other than the above-described process, it is possible to configure in such a manner that the portion that does not influence the verification process result is excluded with the use of the document in a text format. 
     Sixth Embodiment 
     A sixth embodiment will be described. The document verification service employed in the sixth embodiment implements a digest value calculation process on the result where a portion that does not influence the validity verification process result is deleted from the document, in a similar manner as described in the fifth embodiment. Also in the present embodiment, a description is given with reference to  FIG. 24 . 
     In a case where the document schema conforms to W3C XML Schema specification, even if the document element corresponding to the content model that does not include the definition of the document element other than an any element (“skip” of “lax” is the value of a processCentents attribute) in the document schema, this does not influence the validity verification process result. Also, even if the document element attribute corresponding to the content model that does not include the definition of the document element attribute other than an anyAttribute element (“skip” or “lax” is the value of the processCentents attribute) in the document schema, this does not influence the validity verification process result. For this reason, in accordance with the present embodiment, if W3C XML Schema is input as a document schema, the verification process controlling portion  115  determines the XML document of an electronic document as a portion that does not influence the verification result, and excludes a document element that appears at a position corresponding to the any element specified in W3C XML Schema and the document element attribute that appears at a position corresponding to the anyAttribute element from the XML document. The efficiency of the digest value calculation process can be improved by calculating the digest value, the number of characters and the sample character string, after the above-mentioned portions are deleted. 
     The document verifying portion  114  employed in the present embodiment adds an attribute contentModel and an attribute value any to the document element during the validity verification process, after processing the document element corresponding to the content model that does not include the definition of the document element other than an any element (“skip” or “lax” is the value of a processCentents attribute) in the document schema. The document verifying portion  114  adds the attribute contentModel and the attribute value anyAttribute as an attribute of the document element to which the document element attribute belongs, after processing the document element attribute corresponding to the content model that does not include the definition of the document element attribute other than an anyAttribute element (“skip” is the value of the processCentents attribute) in the document schema. 
       FIG. 46  shows a document schema in accordance with the present embodiment. As compared to the document schema shown in  FIG. 6 , there is a difference in that the content model of the passengers element (in forty-seventh line) is represented by an any element.  FIG. 47  shows a document obtained as a result of the addition processing on the document sent to the first car rental company  102  from the travel agency  109 . As compared to the document shown in  FIG. 11 , the contentModel attribute is added to the adult element and the children element included in the passengers element (from the third line to the sixth line). 
       FIG. 45  exemplarily shows a flowchart of processes of the subroutine CANONICALIZE in accordance with the present embodiment. At step S 1261 , the tree T is set to empty, and the pointer P is set to an initial character of the document. If the pointer P reaches an end of the input document at step S 1262 , processing goes to step S 12610 . The tree T is output at step S 12610 . If not, processing goes to step S 1263 . The pointer P is moved and one node is generated at step S 1263 . If such generated node does not satisfy a condition #1: “the generated node is any one of character node, document element node, document element attribute node, and text node” at step S 1124 , processing goes to step S 1266 . If such generated node satisfies the condition #1, such generated node is added to the tree T at step S 1265 . 
     If there is no node that satisfies a condition #2: “there is an attribute node having a name of “contentModel” immediately below the node itself, and there is a text node having a value of “any” immediately below the attribute node” at step S 1266 , processing goes to step S 1268 . If there is anode that satisfies the condition #2, the document element node immediately below the node, the attribute node having the name of “contentModel”, and the text node having the name of “any” that is a child node thereof are deleted at step S 1267 . If there is no node that satisfies a condition #3: “there is an attribute node having the name of “contentModel” immediately below the node itself, and there is a text node having a value of “anyAttribute” immediately below the attribute node” at step S 1268 , processing goes back to step S 1262 . If there is a node that satisfies the condition #3, empty is set to the content of the text node immediately below the document element attribute immediately below the node at step S 1269 . In addition, the attribute node having a name of “contentModel” immediately below the node and a child node thereof that is the text node having the name of “anyAttribute” are deleted. 
       FIG. 48  shows a DOM tree obtained when the document shown in  FIG. 47  is input into the subroutine CANONICALIZE with the use of the document schema shown in  FIG. 46 . The nodes that do not influence the validity verification process result (the node numbers  10 ,  11 ,  12 , and  13 ) are excluded. Accordingly, 160 nodes shown in  FIG. 29  are decreased to 156 nodes. As a result, the efficiency is realized in the post-processing that is a digest value calculation process. 
     In accordance with the present embodiment, the document is converted into a DOM tree, and the node corresponding to the portion that does not influence the verification process result are deleted. In addition, it is possible to configure such that the portion that does not influence the verification process result is excluded from the document in a text format. 
     Seventh Embodiment 
     A seventh embodiment will be described. The document verification service employed in the seventh embodiment implements a digest value calculation process on the result where a portion that does not influence the validity verification process result is deleted from the document, in a similar manner as described in the fifth and sixth embodiments. However, in the present embodiment, the document schema that conforms to XML DTD specification is to be processed. Also in the present embodiment, a description is given with reference to  FIG. 24 . 
     In a case where the document schema conforms to the XML DTD specification, even if the content composed only of a processing instruction or character data is excluded from the document, this does not influence the validity verification result. The verification process controlling portion  115  excludes a portion that is a content of the document element and that does not include another document element, from the XML document, as a portion that does not influence the verification result, if the XML document is input as an electronic document and the XML DTD (Document Type Definition) is input as a document schema. The efficiency of the digest value calculation process can be improved by excluding the above-mentioned portions and then calculating the digest value, the number of characters, and sample character string. 
       FIG. 49  shows a document schema that conforms to XML DTD specification, almost similar to the document schema that conforms to W3C XML Schema shown in  FIG. 6 .  FIG. 50  shows a document almost similar to that shown in  FIG. 11 , and shows the document that refers to the document schema shown in  FIG. 49  instead of the document schema shown in  FIG. 6 . The description shown in  FIG. 50  is different from that defined in the XML Standard Specification, but refers to the document schema (XML DTD) uses the description of a case where the document schema specified in the X3C XML Schema Standard is referred to.  FIG. 51  shows an exemplary document that employs a description that conforms to the XML standard specification. 
     The reason the description that conforms to the XML standard specification is not employed is as follows: if the description shown in  FIG. 51  is employed and the document is retained as a content of the SOAP body and processed as a portion of the sent and received document, a DOCTYPE declaration that is only allowed to appear immediately after the XML declaration appears in the sent and received document, causing an error. It is preferable that the description in  FIG. 50  should be replaced with a new description, when the new description can solve the afore-described problem. 
       FIG. 52  exemplarily shows a flowchart of processes of the subroutine CANONICALIZE executed by the digest value calculating portion  211  in accordance with the present embodiment. At step S 1131 , the digest value calculating portion  211  sets the tree T to empty and the pointer P to an initial character of the document. If the pointer P does not reach an end of the input document at step S 1132 , the pointer P is moved and one node is generated at step S 1133 . If the pointer P reaches the end of the input document at step S 1132 , processing goes to step S 1136 . If such generated node satisfies a condition #1: “the generated node is any one of “character node, document element node, document element attribute node, and text node having a parent node of the document attribute node” at step S 1134 , processing goes to step S 1135 . If not, processing goes back to step S 1132 . The generated node is added to the tree T at step S 1135 , and processing goes back to step S 1132 . If the pointer P reaches the end of the input document at step S 1132 , the tree T is output at step S 1136 . 
       FIG. 53  shows a DOM tree obtained when the document shown in  FIG. 50  is input into the subroutine CANONICALIZE. The nodes that do not influence the validity verification process result (the node numbers  11 ,  13 ,  24 ,  31 ,  36 ,  38 , and  40 ) are excluded. Accordingly, 160 nodes shown in  FIG. 29  are decreased to 153 nodes. As a result, the efficiency is realized in the digest value calculation process, which is a post-processing. 
     In addition, it is easily possible to realize the process of excluding the content of the character data of the document element having a mixed content model in a case where the document schema is not only the W3C XML Schema but also XML DTD, as described in the fifth embodiment. In accordance with the present embodiment, the document is converted into the DOM tree, and then the node corresponding to the portion that does not influence the verification process result is deleted. However, in addition to this, it is possible to configure in such a manner that the portion that does not influence the verification process result is excluded from the document in a text format. 
     Eighth Embodiment 
     An eighth embodiment will be described. The document verification service employed in the eighth embodiment processes the document schema that conforms to the specification of XML DTD or W3C SML Schema, and implements the digest value calculation process on the result where the portion that does not influence the validity verification process result is deleted from the document. Also in the present embodiment, a description is given with reference to  FIG. 24 . 
     The verification process controlling portion  115  excludes a portion that does not influence the verification result from an electronic document, and then determines whether or not a change that influences the verification result is made to the electronic document from which the portion that does not influence the verification result is excluded. In a case where the document schema conforms to the XML DTD specification, even if the character data immediately below the content corresponding to the content model that is defined as ANY keyword, this does not influence the validity verification result. In a similar manner, in a case where document schema conforms to the W3C XML Schema specification, even if the document and the character data corresponding to any element, this does not influence the validity verification result. 
     For this reason, when the XML document is input as an electronic document, the verification process controlling portion  115  deletes the content of the character data immediately below the document element corresponding to a portion that includes ANY keyword in the XML DTD element type definition and also deletes the document element and the character data corresponding to any element in the W3C XML Schema, as portions that do not influence the verification result. The efficiency of the digest value calculation process can be improved by calculating the digest value, the number of characters and sample character string, after these portions are deleted. 
     The document verifying portion  114  adds an attribute contentModel and an attribute value any to the document element, after processing the document element that corresponds to the content model defined by ANY keyword of the document schema during the validity verification process. Here, in the description hereafter, XML DTD is assumed to be employed as a document schema. However, also in W3C XML Schema, the similar effects are obtainable by adding the attribute contentModel and the attribute value any to the document element, after the document element that corresponds to any element is processed. 
       FIG. 54  shows a document schema that conforms to XML DTD, almost similar to the document schema that conforms to W3C XNL Schema shown in  FIG. 46 .  FIG. 55  is a document similar to that shown in  FIG. 42 , and shows a document that refers to the document schema shown in  FIG. 54  instead of the document schema in  FIG. 6 . The description that refers to the document schema (XML DTD) is different from that specified in the XML standard specification, as described with reference to  FIG. 50 . 
       FIG. 56  exemplarily shows a flowchart of processes of the subroutine CANONICALIZE executed by the digest value calculating portion  211  in accordance with the present embodiment. At step S 1271 , the digest value calculating portion  211  sets empty to the tree T and an initial character of the document to the pointer P. If the pointer P does not reach an end of the input document at step S 1272 , the pointer P is moved and one node is generated at step S 1273 . If the generated node satisfies a condition #1: “the generated node is anyone of the character node, document element node, document element attribute node, and text node” at step S 1274 , such generated node is added to the tree T at step S 1275 . If not, processing goes to step S 1276 . 
     If the generated node does not satisfy a condition #2: “there is an attribute node having a name of “contentModel” immediately below the generated node, and there is a text node having a value of “any” immediately below the attribute node” at step S 1276 , processing goes back to step S 1272 . If the generated node satisfies the condition #2, all the nodes immediately below the node, the attribute node having a name of “contentModel”, and a child node thereof that is the text node having a name of “any” are deleted at step S 1277  and processing goes back to step S 1272 . If the pointer P reaches the end of the input document at step S 1272 , the tree T is output at step S 1278 . 
     The DOM tree obtained when the document shown in  FIG. 55  is input into the subroutine CANONICALIZE is identical to the document shown in  FIG. 29 , after the node corresponding to the character data of “A child is three years old” added in the sixth line in the document shown in  FIG. 55  is deleted. As a result, it is possible to improve the efficiency of the digest value calculation process, which is a subsequent process. 
     In accordance with the present embodiment, the document is converted into the DOM tree, and then the node corresponding to the portion that does not influence the verification process result is deleted. However, in addition to this, it is possible to delete the portion that does not influence the verification result from the document in a text format. 
     Ninth Embodiment 
     A ninth embodiment will be described. In the document verification service employed in the ninth embodiment, the document is partially input into the subroutine EVALUATE. Also in the present embodiment, a description will be given by reference to  FIG. 24 . The verification process controlling portion  115  divides an electronic document into two or more portions. At this time, the verification process controlling portion  115  divides the electronic document into a content of character data and a rest thereof. If the electronic document is a structured document represented by a tree having nodes of component elements, the verification process controlling portion  115  divides the structured document into document element attributes and a rest thereof. The document verifying portion  114  verifies whether or not portions of such divided electronic document respectively satisfy a given condition. Even if a change is made on the document, the portion on which the validity verification process is performed can be smaller than the whole document, thereby improving the processing efficiency. 
       FIG. 57  exemplarily shows a flowchart of processes of the verification process controlling portion  115  in accordance with the ninth embodiment of the invention. The verification process controlling portion  115  assigns the content of the SOAP body in the SOAP document in the sent and received document retaining portion for a variable X at step S 1141 . The content of the variable X is divided into a relationship between the document elements and respective document elements, which are respectively assigned to an array Y. That is to say, the document is divided into the relationship between the document elements, document element attributes of the respective document elements, and the text content at step S 1142 . At step S 1143 , the number of elements in the array Y is set to a variable Z, and 0 is set to a variable W. 
     If the value of the variable Z is not greater than that of the variable Y at step S 1144 , a document schema fragment is generated to correspond to a “the variable Z”-th element of the array Y at step S 1145 . The subroutine EVALUATE is executed with an argument of “the variable Z”-th element of the array Y at step S 1146 . An output from the subroutine EVALUATE is associated with “the variable Z”-th element of the array Y at step S 1147 . The variable Z is incremented at step S 1148 , and processing goes back to steps  1144 . If the value of the variable Z is greater than that of the variable Y at step S 1144 , the sent and received document is received at step S 1149 . 
       FIG. 58  exemplarily shows an alternative flowchart of processes of the verification process controlling portion  115  in accordance with the ninth embodiment of the invention. The verification process controlling portion  115  assigns the content of the SOAP body to the variable X, at step S 1301 . At step S 1302 , a portion in which an attribute value and the character data are deleted from the value of the variable X is added to the array Y, and a portion that has the attribute value or the character data content in the document elements of the variable X is added to the array Y. In other words, at step S 1302 , processed are the portion in which the attribute value and character data are deleted from the document (except for the content and attribute of the document element defined by an external document schema) and the portion that has the attribute or the character data content in the respective document elements that compose a document. 
     At step S 1301 , the number of elements in the array Y is set to variable Z, and 0 is set to the variable W. If the value of the variable Z is not greater than that of the variable Y at step S 1304 , a document schema fragment is generated to correspond to a “the variable Z”-th element of the array Y at step S 1305 . At step S 1305 , a schema, in which all data types of the character data in the input document schema are converted into string types, is generated as a document schema for the whole document. At step S 1306 , the subroutine EVALUATE is executed with an argument of the variable Z-th element of the array Y. At step S 1307 , the output from the subroutine EVALUATE is corresponded to the variable Z-th element of the array Y. At step S 1308 , the variable Z is incremented and processing returns to step S 1304 . If the value of the variable Z is greater than the value of the variable Y at step S 1304 , the sent and received document is sent back at step S 1309 . 
     In the processes shown in  FIG. 57 , the document is divided into the relationship between the document elements and the respective document elements, and the respectively corresponding document schemas are generated. In the processes shown in  FIG. 58 , the document schema that does not check the character data type and the document schema that checks the character data type of the respective document elements are generated, and in addition, the respectively corresponding document fragments are generated. This is based on the assumption that the change in the document is made locally in many cases with respect to a specific document element. In addition to this, it is possible to divide the document into the relationship between the document elements, the respective document elements that exclude the character data, and the respective character data. Furthermore, it is possible to divide the document into a partial tree having a top of a specific document element and a rest thereof. 
       FIG. 59  through  FIG. 69  partially show the process (the relationship between the document elements and the document elements that appear from the first line to the fifth line in  FIG. 18 ) generated at step S 1142 , when the document shown in  FIG. 18  is input into the document verification service and the process shown in  FIG. 57  is performed by the verification process controlling portion  115 , in accordance with the present embodiment.  FIG. 70  shows a document that corresponds to a place element in the forty-third line in  FIG. 18 .  FIG. 71  through  FIG. 81  show document schema fragments corresponding to the documents shown in  FIG. 59  through  FIG. 70 .  FIG. 82  shows a document schema fragment corresponding to the document shown in  FIG. 70 . 
       FIG. 84 ,  FIG. 60 ,  FIG. 62 , and  FIG. 63  respectively show portions (a portion in which the character data that includes the attribute value is deleted from the document and the document elements that appear from the first line to the sixth line in  FIG. 18 ) to be processed, which are generated at step S 1302 , when the document shown in  FIG. 18  is input into the document verification service  210  employed in the present embodiment and the processes shown in  FIG. 83  are carried out on the verification process controlling portion  115 .  FIG. 85 ,  FIG. 72 ,  FIG. 74 , and  FIG. 75  show document schema fragments that correspond to the above-described portions. 
     It is also possible to generate, in advance, all the document schema fragments that include the document schema fragment shown in  FIG. 71  through  FIG. 82  and  FIG. 86  when the document schema is obtained. This makes it possible to improve the processing efficiency of a case where lots of documents associated with an identical document schema are processed. 
     Hereinafter, in the present embodiment, it is assumed that the process shown in  FIG. 67  is implemented on the verification process controlling portion  115 . Even in a case where the processes shown in  FIG. 83  are implemented, similar process results are obtainable as described hereinafter. 
       FIG. 86  partially shows the sent and received document that includes the document shown in  FIG. 18  sent back from the translation service. Fourth line to fifteenth line in FIG.  86  retain the description that specifies a document portion that corresponds to  FIG. 59  through  FIG. 69 , the true value of the process result when the validity verification of the document portion is processed most recently, and the digest element that retains the digest value obtained from the document portion. For simplification, the digest elements that correspond to other document portions are omitted. 
     For example, the document portion that corresponds to the structure attribute, text attribute, and attribute of the digest element in the fourth line includes only the relationship between the document elements, and does not include the text content or the document element attribute. The value of a path attribute denotes an XPath location path to specify the document element located on the top of the document portion that corresponds to the digest element. Here, the content of the validity attribute and that of the digest element are described above. 
       FIG. 87  shows a list of the digest values (new digest values) calculated by the document portion shown in  FIG. 59  through  FIG. 70  and the digest values (old digest values) shown in  FIG. 86 , when the sent and received document shown in  FIG. 86  is input into the document verification service. As shown in  FIG. 87 , only the document portion (a place element in the forty-third line in  FIG. 18 ) having a location path of “/itinerary/stay[1]/place” is different between the new and old digest values, and the subroutine VALIDATE is executed on only the document portion and the digest values are renewed. 
     The document verification service  210  employed in the present embodiment calls the subroutine EVALUATE after the input document is divided in a text format without change. In addition to this, it is possible to configure such that the input document is converted into the DOM tress and then divided. 
     As described heretofore, a document to be processed is divided into multiple portions, and it is determined whether a change is made on each of the verification process results of the multiple portions. Accordingly, even if a change is made to the document, the portion on which the validity verification process is to be performed can be reduced as compared to the whole document, thereby improving the processing efficiency. 
     Tenth Embodiment 
     A tenth embodiment will be described. The document verification service  210  employed in a tenth embodiment a portion of the document, not the whole document, is input into the subroutine EVALUATE, same as described in the sixth embodiment. In addition to this, the document verification service employed in the tenth embodiment receives from a service that has requested the validity verification process, information on the document part that has been changed by the service, and then divides the document with the use of the information received. A description is given with reference to  FIG. 24 . When it is determined that a change is made to the electronic document that influences the verification result, the verification process controlling portion  115  divides the electronic document into a portion to which the changed is made and the rest of the document. At this time, if the electronic document is a structured document, the verification process controlling portion  115  divides the structured document into a partial tree and the rest thereof. The document verifying portion  114  verifies whether or not the portion in which a change is made satisfies a given condition. Even if a change is made to the document, the portion on which the validity verification process is performed can be smaller than the whole document, thereby improving the processing efficiency. 
     A description is now given in more detail. The document shown in  FIG. 8  is sent to the first airline  105  from the travel agency  109 , the sent and received document that includes the document shown in  FIG. 8  is sent to the document verification service  210  employed in the present embodiment, from the first airline  105 , and the validity verification process is requested.  FIG. 88  shows the sent and received document that is sent at this time. 
     In the fourth line in  FIG. 88 , the digest element is shown. The digest element retains the verification result and the digest value, when the validity verification process was performed on the whole document most recently. In addition to this, in the fifth and sixth lines, the modification elements are added by the travel agency  109  that has sent this sent and received document. The modification element represents a possibility that a change will be made by the first airline  105 , who is a receiver of the sent and received document. The value of a path attribute of the modification element is a location path of XPath that represents the document element located on the top of a partial structure to which there is a possibility that a change is made. 
     A subtree attribute specifies that the partial structure to which there is a possibility that a change is made is any of a partial tree having a top of the document element specified by the path attribute and a portion that excludes the partial tree having a top of the document element. If the attribute value is “true”, this represents the former. If the attribute value is “false”, this represents the latter. The modification elements in the fifth and sixth lines denote that there is a possibility of changing a partial tree having a top of a second-appearing travel element immediately below itineraryInProcess element and a partial tree having a top of a fifth-appearing travel element. 
       FIG. 83  exemplarily shows a flowchart of processes of the verification process controlling portion  115 . The processes shown in  FIG. 83  are identical to those shown in  FIG. 17  except the content of step S 1152 . According to the process in  FIG. 57 , the division result of the document is determined in advance. However, in the process in  FIG. 83 , the division result of the document is determined on the basis of the contents of the modification element and the digest element, which are written in the SOAP header of the sent and received document. 
     At step S 1151 , the verification process controlling portion  115  assigns the content of the SOAP body to the variable X. At step S 1152 , the content of the variable X is divided into two or more partial structures according to the contents of the modification element and the digest element, and such two or more partial structures are assigned to the array Y. At step S 1153 , the variable Z is set to the number of the elements of the array Y, and the variable W is set to 0. If the value of the variable Z is not greater than the value of the variable Y at step S 1154 , a document schema fragment that corresponds to the variable Z-th element of the array Y is generated at step S 1155 . At step S 1156 , the subroutine EVALUATE is executed with an argument of the variable Z-th element of the array Y. At step S 1157 , the output from the subroutine EVALUATE is corresponded to the variable Z-th element of the array Y. At step S 1158 , the variable Z is incremented and processing returns to step S 1154 . If the value of the variable z is greater than the value of the variable Y at step S 1154 , the sent and received document is sent back at step S 1159 . 
       FIG. 89  shows a sent and received document sent back to the first airline  105  from the document verification service  210 . In  FIG. 89 , a partial tree having a top of the second-appearing travel element immediately below the itineraryInProcess element is retained as the digest element in the fifth line, a partial tree having a top of the fifth-appearing travel element is retained as the digest element in the sixth line, and the validation verification result and the digest value of the document obtained by excluding the afore-described partial trees from the document are respectively retained as the digest elements in the fourth line. 
     Next, a consideration is given to a situation when the whole sent and received document shown in  FIG. 89  is renewed from  FIG. 8  to  FIG. 9  by the travel agency  109 .  FIG. 90  shows the sent and received document sent to the document verification service  110  from the travel agency  109 .  FIG. 91  shows a list of the digest values (old digest values) retained as the digest element, the digest values (new digest values) calculated by the document verification service  110 , with respect to three partial structures in which the validity verification results and the digest values are retained. 
     Since  FIG. 91  exhibits that only the partial tree, which has a top of the second-appearing travel element immediately below the itineraryInProcess element, has been changed, the subroutine VALIDATE is executed on only the afore-described partial tree. If the document schema that conforms to W3C XML Schema is used, the document schema corresponding to the document can be utilized to execute the verification process on only an arbitrary partial tree. Therefore, the document schema shown in  FIG. 6  can be used without change at the time of executing the subroutine VALIDATE. 
     The document verification service employed in the present embodiment calculates and compares the digest values of the portions (a portion that excludes, from the document, the partial tree having a top of the second-appearing travel element and the partial tree having a top of the fifth-appearing travel element immediately below the itineraryInProcess element) that are specified by the modification element shown in  FIG. 88  that there is no possibility of a change. However, it is possible to configure to skip the above-described process. 
     It is also possible to configure such that the document verification service  210  divides the input document in a text format and calls the subroutine EVALUATE. In addition to this, it is possible to configure such that the input document is converted into a DOM tree and the DOM tree is divided. 
     As stated, by dividing the document to be processed into multiple portions according to the information obtained from the service and determining whether or not a change that influences the verification process result has been made, the portion on which the validity verification process should be performed can be made smaller than the whole document, even if a change has been made on the document. Thus, the processing efficiency can be improved. 
     Eleventh Embodiment 
     An eleventh embodiment will be described. The eleventh embodiment of the invention exemplarily describes a case where the document schema is revalidated due to a change of the document schema. The document verification service employed in the eleventh embodiment detects the change not only of the document but also of the document schema, and the validity verification is performed.  FIG. 92  shows a schematic view of a system  300  employed in the present embodiment. The system  300  includes the first airline  105 , the travel agency  109 , and a document verification service  310 . These are respectively connected onto the network  120  such as the Internet. The document verification service  310  includes the sent and received document retaining portion  111 , the document canonicalization portion  113 , the document verifying portion  114 , the verification process controlling portion  115 , the digest value calculating portion  211 , and a document schema retaining portion  311 . That is to say, in addition to the components shown in  FIG. 24 , the document schema retaining portion  311  is added. The document schema retaining portion  311  retains the schema. 
     The verification process controlling portion  115  determines that a change that influences the verification result is made on a given schema, if the information obtained by implementing a given operation on a given document schema (an old digest value of the document schema) is different from the information obtained by implementing a given operation on a given document schema (anew digest value of the document schema) at the time when a structured document is validated most recently. The document verification service  310  employed in the present embodiment is capable of detecting the change not only of the document but also of the document schema and performing the validity verification. 
       FIG. 93  is a flowchart of processes of the subroutine EVALUATE on the verification process controlling portion  115  in accordance with the eleventh embodiment. In  FIG. 93 , only if the old digest value and the new digest value of the document and document schema are identical, a set of the old digest values and the validity verification result are output. If not, the subroutine VALIDATE is called. However, for the document schema, the verification process controlling portion  115  deletes (excludes) a partial tree having a top of an annotation element from the document schema as a portion that does not influence the verification result at step S 1175 , before the subroutine CANONICALIZE is called. 
     At step S 1171 , the subroutine CANONICALIZE is executed on an input document. At step S 1172 , the subroutine GET_DIGEST is executed on the output. If the old digest value is not applied at step S 1173 , processing goes to step S 11711 . If the old digest value is applied, processing goes to step S 1174 . If the new digest value and the old digest value are not identical at step S 1174 , processing goes to step S 11711 . If the new digest value and the old digest value are identical, processing goes to step S 1175 . At step S 1175 , the partial tree having the top of the annotation element is deleted from the document schema. 
     At step S 1176 , the subroutine CANONICALIZE is executed on the document schema. At step S 1177 , the subroutine GET_DIGEST is executed on the output. If the old digest value of the document schema is applied to the document at step S 1178 , processing goes to step S 1179 . If not, processing goes to step S 11711 . If the new digest value of the document schema and the old digest value of the document schema are identical at step S 1179 , a set of the digest value of the old document, the digest value of the old document, and the most recent result of subroutine VALIDATE at step S 11710 . At step S 11711 , the most recent result of subroutine VALIDATE is output. At step S 11712 , the set of the digest value of the new document, the digest value of the new document schema, and the result of the subroutine VALIDATE are output. 
     It is assumed that the document shown in  FIG. 9  is sent back to the travel agency  109  from the first airline  105 , and the document schema shown in  FIG. 6  is renewed before the document is sent to the second airline  106  from the travel agency  109 .  FIG. 94  shows a document schema after renewal. In the document schema shown in  FIG. 6 , the children element has to be appeared immediately below the passengers element. However, in the document schema in  FIG. 94 , there is a change in that the children element needs not to be appeared in the document schema in  FIG. 94  (see the nineteenth line). In accordance with this change, the content of the annotation element (in the fourth line) is also changed. 
       FIG. 95  is a view showing the sent and received document when the document shown in  FIG. 9  is returned to the travel agency  109 . In the SOAP header of  FIG. 95 , added are the digest element retaining not only the digest value of the document and the most recent verification result (in the fourth line) but also the digest value of the document schema (in the fifth line). 
     The document shown in  FIG. 95  is sent to the second airline  106  from the travel agency  109 , and the validity verification process is requested to the document verification service from the second airline  106 . Then, the new digest value and the old digest value of the document and that of the document schema are compared on the basis of the process flow shown in  FIG. 93 , at step S 1174 . As a result, the new digest value and the old digest value of the document are identical. However, the new digest value and the old digest value of the document schema are not identical at step S 1179 . Processing moves to step S 11711  from step S 1179 . At step S 11711 , the subroutine VALIDATE is called, and the new digest value and the process result of the subroutine VALIDATE are output at step S 11712 . 
     Twelfth Embodiment 
     A twelfth embodiment will be described. The twelfth embodiment exemplarily describes a case where inclusion relation of the language defined by the document schema is determined. The document verification service  310  employed in the present embodiment detects the change of the document schema and implements the validity verification, in a similar manner as described in the eleventh embodiment. In addition, the document verification service  310  employed in the present embodiment determines whether or not the change of the schema influences the validity verification result. Only when the change influences the validity verification result, the validity verification is performed. 
     The schematic view of the document verification service employed in the present embodiment is similar to that employed in the eleventh embodiment as shown in  FIG. 92 . However, the document verification service  310  employed in the present embodiment retains a latest document schema specified by an identical identifier on the document schema retaining portion  311 , whenever the subroutine VALIDATE is executed. 
     The verification process controlling portion  115  determines that there is no change in the document schema that influences the validity verification result, if a language defined by a new document schema (a first language defined by a given document schema) includes the language defined by the old document schema (a second language defined by the given document schema when the structured document is verified most recently), and the result (verification result) of the most recent subroutine VALIDATE is “true”. The verification process controlling portion  115  also determines that there is not a change in the document schema that influences the validity verification result, if the language defined by the old document schema includes the language defined by the new document schema, and the result (verification result) of the most recent subroutine VALIDATE is “false”. 
       FIG. 96  is a flowchart of processes of the verification process controlling portion  115 . At step  1181 , the verification process controlling portion  115  executes the subroutine CANONICALIZE on the input document. At step S 1182 , the subroutine GET_DIGEST is executed on the output. If the old digest value of the document is not applied at step S 1183 , processing goes to step S 11813 . If the old digest value is applied, processing goes to step S 1184 . If the new digest value of the document is not identical to the old digest value of the document at step S 1184 , processing goes to step S 11813 . If the new digest value of the document is identical to the old digest value of the document, processing goes to step S 1185 . At step S 1185 , the partial tree having the top of the annotation element is deleted from the document schema. At step S 1186 , the subroutine CANONICALIZE is executed on the document schema. 
     At step S 1187 , the subroutine GET_DIGEST is executed on the output. If the old digest value of the document schema is not applied to the document at step S 1188 , processing goes to step S 11813 . If the old digest value of the document schema is applied to the document at step S 1188 , processing goes to step S 1189 . If the new digest value of the document schema is not identical to the old digest value of the document schema at step S 1189 , processing goes to step S 11811 . If the new digest value of the document schema is identical to the old digest value of the document schema at step S 1189 , a set of the digest value of the old document, the digest value of the old document, and the result of the most recent subroutine VALIDATE at step S 11810 . If the language defined by the new document schema includes the document defined by the old document schema, and the result of the most recent subroutine VALIDATE is not “true”, processing goes to step S 11813 . If it is “true”, the set of the old digest value, the digest value of the new document, and the result of the most recent subroutine VALIDATE at step S 11812 . At step S 11813 , the subroutine VALIDATE is executed on the input document. At step S 11814 , the set of the digest value of the new document, the digest value of the new document schema, and the result of the VALIDATE are output. 
     In the processes of the verification process controlling portion  115  employed in the ninth embodiment (shown in  FIG. 93 ), the subroutine VALIDATE is activated unconditionally, if the new digest value of the document schema is not identical to the old digest value of the document schema. Meanwhile, if the language defined by the new document schema includes the language defined by the old document schema and the result of the most recent subroutine VALIDATE is “true”, although the new and the old digest values of the document schema are not identical, the verification process controlling portion  115  employed in the twelfth embodiment determines that a change of the document schema does not influence the validity verification result and terminates the process without activating the subroutine VALIDATE. 
     Although the processes in  FIG. 96  do not include, it is possible to add a process of determining that the change of the document schema does not influence the validity verification result and terminating the process without activating the subroutine VALIDATE, even in a case where the language defined by the old document includes the language defined by the new document schema and the result of the most recent subroutine VALIDATE is “false”. 
       FIG. 97  shows a flowchart of processes of determining whether or not the language defined by a document schema A includes the language defined by a document schema B. At step S 1191 , a production rule set is generated from the document schema A and assigned to a set A. At step S 1192 , a production rule set is generated from the document schema B and assigned to a set B. With respect to all production rules of the set B, if a symbol in a left side is included in the left side of the set A, at step S 1193 , “false” is output at step S 11912 . If not, processing goes to step S 1194 . At step S 1194 , all the symbols in the left sides of all the production rules in the set B are assigned to a list C, and an initial element of the list C is assigned to a variable D. At step S 1195 , the production rules having the symbol of the variable D in the left side are respectively specified from the set A and set B, and are respectively assigned to a variable E and a variable F. 
     At step S 1196 , a deterministic finite-state automaton is generated from the production rules of the variable E and the variable F, and is assigned to a variable G and a variable H. At step S 1197 , a subroutine COMPARE is executed with arguments of the values of the variable H and the variable G. If a return value of the subroutine COMPARE is not true at step S 1198 , false is output at step S 1198 . If true, processing goes to step S 1199 . If the value of the variable D is not an end element of the list C at step S 1199 , the next element of the list C is assigned to the variable D at step S 11910  and processing returns to step S 1195 . If the value of the variable D is an end element, true is output at step S 11910 . 
     The processes shown in  FIG. 97  are implemented on the assumption that there is only one production rule having an identical symbol in the left side. Such assumption is satisfied in XML DTD. Meanwhile, in W3C XML Schema, multiple production rules having the identical symbol in the left side may be obtainable, because different content models can be defined according to the appearing position of the document element, with the use of the mechanism of local element and local attribute. According to exemplary embodiments of the invention, the document schema is employed such that a single content model is defined regardless of the appearing position of the document element. 
       FIG. 98  is a flowchart showing processes of the subroutine COMPARE at step S 1197 . The processes of the subroutine COMPARE determine whether the language defined by the deterministic finite-state automaton having a first argument includes the language defined by the deterministic finite-state automaton having a second argument. At step S 1251 , a set S having a set of states is set to empty, and a list T having a set of states is set to empty. At step S 1252 , an initial element of the list T having a set of states is set to an initial state of an automaton A and an initial state of an automaton B. If the list T having a set of states is empty at step S 1253 , true is output at step S 12517 . If the list T having a set of states is not empty, an initial element of the list T having a set of states is assigned to a set U having the states at step S 1254 . At step S 1255 , U is added as an element of the set S having a set of states. At step S 1256 , a state V is set to a first element of the set U having a set of states, and a state W is set to a second element of the set U having a set of states. If the state V is in an accept state at step S 1257 , processing goes to step S 1258 . If the state V is not in an accept state, processing goes to step S 1259 . 
     If the state W is in an accept state at step S 1258 , processing goes to step S 1259 . If not, false is output at step S 12518 . At step S 1259 , a state list X is set to a state transition list having a starting edge of the state V. At step S 12510 , a state set Y is set to a state transition set having a starting edge of the state W. If the state list X is empty at step S 12511 , processing goes back to step S 1253 . If not, processing goes to step S 12512 . If an element of the symbol corresponding to the initial element of the state list X is not included in the state set Y at step S 12512 , false is output at step S 12519 . If it is included in the state set Y, a state set Z is set to the initial element of the state list X and an element of the set Y corresponding to the symbol of the initial element of the state list X at step S 12513 . 
     At step S 12514 , the element of Z is deleted from X and Y. If the state set Z is included in the state set S or the state list T at step S 12515 , processing returns to step S 12511 . If not, the state set Z is added as an end element of the list T having a set of states at step S 12516 , and processing goes back to step S 12511 . 
       FIG. 99  is a view showing a deterministic finite-state automaton that accepts the language derived by the production rule having the symbol corresponding to the passengers element in the document schema shown in  FIG. 6  in the left side.  FIG. 100  is a view showing a deterministic finite-state automaton that accepts the language derived by the production rule having the symbol corresponding to the passengers element in the document schema shown in  FIG. 94  in the left side. In  FIG. 99  and  FIG. 100 , the initial state is represented by a node located on a terminal of a side that does not have a node on a starting edge. The accept state is represented by a node having a white number. A trap state is represented by a node surrounded by a dashed line. A state transition is represented by a side having a node of a starting edge. Characters added to the side are symbols corresponding to the state transition. 
     The language composed of a symbol string accepted by the deterministic finite-state automaton shown in  FIG. 100  includes the language accepted by the deterministic finite-state automaton shown in  FIG. 99 . The deterministic finite-state automaton shown in  FIG. 100  accepts a symbol string composed only of a symbol “adult”, but the deterministic finite-state automaton shown in  FIG. 99  does not accept the above-described symbol. All the symbol strings accepted by the deterministic finite-state automaton shown in  FIG. 99  are accepted by the deterministic finite-state automaton shown in  FIG. 100 . 
     With respect to the production rule and the deterministic finite-state automaton having the symbol corresponding to other document elements in the left side, identical production rules and the deterministic finite-state automatons are obtainable from the document shown in  FIG. 6  and that in  FIG. 94 . When the subroutine COMPARE is activated with the afore-described automatons serving as arguments, the language accepted by the deterministic finite-state automaton shown in  FIG. 100  includes the language accepted by the deterministic finite-state automaton shown in  FIG. 99 . Accordingly, the subroutine COMPARE returns “true”. It is thus possible to end the process without executing the subroutine VALIDATE, improving the processing efficiency. 
     Thirteenth Embodiment 
     A thirteenth embodiment will be described. The thirteenth embodiment is an exemplary embodiment that verifies an integral form. The document verification service employed in the thirteenth embodiment is different from the document verification services employed in the firth through twelfth embodiments, and is provided for determining whether or not the input document is an XML document in an integral form.  FIG. 101  is a schematic view of a system employed in the present embodiment. A system  400  includes a document editing service  420 , a document DB service  430 , and a document verification service  410 . These are connected onto the network such as the Internet. The document verification service  410  includes the sent and received document retaining portion  111 , the verification process controlling portion  115 , a digest value calculation portion  211 , and the document verifying portion  114 . The verification process controlling portion  115  is provided for verifying whether or not the input electronic document is an XML document in an integral form. 
     The document editing service  420  shown in  FIG. 101  provides a document editing program suitable for a document edited by the user. For instance, if the document to be edited is not an XML document, a text editor is activated. If the document is an XML document, an XML document editor is activated. The user stores the document in process of editing on the document DB service  430 , and reloads the document onto the document editing service  420  as needed, when restarting editing. 
     When the document is reloaded on the document editing service  420 , the document editing service  420  sends the document to the document verification service  410 , and asks whether or not the document is an XML document in an integral form. The document verification service  410  sends a reply of the sent and received document that includes the digest value of the determination result of the document to the document editing service  420 . If the document is determined to be an XML document in an integral form, the document editing service  420  activates the XML document editor. If not, the document editing service  420  activates a text editor. 
     The process flow of the document verification service  410  and that of the verification process controlling portion  115  are identical to that shown in  FIG. 25 .  FIG. 102  is a flowchart of processes of the subroutine EVALUATE. At step S 1211 , the subroutine GET_DIGEST is executed on the input document. If the old digest value is applied to the document at step S 1212 , processing goes to step S 1213 . If not, processing goes to step S 1214 . If the new digest value equals to the old digest value at step S 1213 , a set of the old digest value and the result of a most recent subroutine PARSE are output at step S 1216 . At step S 1214 , the subroutine PARSE is executed on the input document. At step S 1215 , a set of the new digest value and the result of the subroutine PARSE. 
       FIG. 103  is a flowchart of processes at step S 1211 . In the processes shown in  FIG. 102 , the subroutine CANONICALIZE is not activated. This is because it is unknown whether the document is a well-formed XML document in integral form and the canonicalization process cannot be executed. At step S 1221 , the digest value of the document is calculated. At step S 1222 , the digest value is encoded and output. 
       FIG. 104  is a view showing an example of the sent and received document to be input into the document verification service employed in the present embodiment. The document in process of editing is retained in the content of the SOAP body. This document seems an XML document. However, there is no end tag of a p element in the eleventh line, and this is not a well-formed XML document in an integral form. Accordingly, there is “false” in the value of a welformedness attribute of the digest element on the fourth line. This value exhibits that it is determined this document is not well-formed, when it was determined most recently whether or not this document was written in an integral form. It is assumed that the following digest value is obtained, when the sent and received document shown in  FIG. 104  is input. 
     4162bbb1d56dcf998518516f001fd72f 
     This value is identical to the content of the digest value in the fourth line. Therefore, the document verification service  410  determines that there is no change in the document and the sent and received document is sent to the document editing service  420 . 
     Next, a consideration is given to a situation when the document in the sent and received document shown in  FIG. 4  is edited by the text editor to a well-formed XML document in an integral form, is stored on the document DB service  430 , and is reloaded onto the document editing service  420 .  FIG. 105  is a view showing the sent and received document to be sent to the document verification service from the document editing service  420 . It is assumed that the following digest value is obtained, when the sent and received document shown in  FIG. 105  is input. 
     001fd72f4162bbb1d56dcf998518516f 
     This value is different from the content of the digest element in the fourth line. Therefore, the document verification service  410  determines that there is a change in the document, and the subroutine PARSE is executed. As a result, the document is determined to be a well-formed XML document in an integral form, the content of the digest element is renewed, and the sent and received document shown in  FIG. 106  is sent to the document editing service  420 . The document editing service  420  refers to the result (the value of the welformedness attribute of the digest value), activates the XML document editor as an editor for the document, instead of the text editor. 
     As stated, even if the process of determining whether or not the document is a well-formed XML document in integral form when there is no change in the document, it is possible to know whether or not the document is a well-formed XML document having an integral form, by using the document verification service  410 , enabling the improved processing efficiency. 
     Fourteenth Embodiment 
     A fourteenth embodiment will be described. The fourteenth embodiment of the invention is an example where a verification history is retained.  FIG. 107  is a schematic view of a system  500  in accordance with the present embodiment. The system  500  is provided with the first car rental company  102 , the travel agency  109 , and a document verification service  510 . These are connected on the network  120  such as the Internet. The document verification service  510  is provided with the sent and received document retaining portion  111 , the document canonicalization portion  113 , the document verifying portion  114 , the verification process controlling portion  115 , the digest value calculating portion  211 , and a verification history retaining portion  511 . 
     In the embodiments described above, the digest value and the verification result when the document to be verified was verified most recently are retained in the header of the sent and received document (SOAP document). The verification history retaining portion  511  employed in the present embodiment retains a set of the value obtained as a result that one directional function process is applied (digest value of the document) in a past verification result and a verification result. If the value obtained as a result that one-directional function process is applied to the document to be verified is identical to any of the values retained on the verification history retaining portion  511 , the verification result that corresponds to the value is set to the verification result of the electronic document. 
     This eliminates the necessity of making a set of the digest value and the verification result in association with the document to be verified. Only the document to be verified has to be sent to the document verification service from the service that requests the verification. Accordingly, in addition to SOAP employed in the above-described embodiments, representational state transfer (REST) protocol can be used. REST protocol is one of the protocols used for sending and receiving the document between the services connected over the Internet. 
       FIG. 108  is a flowchart of processes of the subroutine EVALUATE executed by the verification process controlling portion  115 . At step S 1291 , the verification process controlling portion  115  executes the subroutine CANONICALIZE on the input document. At step S 1292 , the subroutine GET_DIGEST is executed on the output. IF the set (of the document digest value and the verification result) having the value identical to the document digest value is retained on the verification history retaining portion at step S 1293 , the verification result of a specified set is output at step S 1293 . IF the set (of the document digest value and the verification result) having the value identical to the document digest value is not retained on the verification history retaining portion, the subroutine VALIDATE is executed on the input document at step S 1294 . At step S 1295 , a set of the new digest value and the result of the subroutine VALIDATE is added to the verification history retaining portion  511 . At step S 1296 , the result of the subroutine VALIDATE is output. 
     In a similar manner as described in the first and second embodiments, a consideration is given to a situation where the itinerary draft shown in  FIG. 11  is sent to the first car rental company  102  from the travel agency  109  and sent back to the travel agency  109  without change. At this time, the verification history retaining portion  511  of the document verification service  510  retains in the following as a set of the verification result and the digest value. 
     “true”, “3bebcec335f6e46bfe3563897ee544e0” 
     The document verification service  510  calculates the digest value of the itinerary draft, when the travel agency  109  requests for the verification process of the itinerary draft shown in  FIG. 11 . Then, the document verification service  510  tries to specify a set having an identical digest value in the verification history retaining portion  511 , and specifies the above-described set. The verification history retaining portion  511  outputs “true”, which is the verification result in such specified set, to the travel agency  109 , and completes the process. This makes it possible to skip the verification process of the itinerary draft, thereby improving processing efficiency. 
       FIG. 109  shows examples of calculation results of (1) a verification processing period with a conventional method (only the subroutine VALIDATE is executed), (2) the verification processing period of unverified document with the use of a method employed according to an aspect of the invention (the subroutine CANONICALIZE, the subroutine GET_DIGEST, and the subroutine VALIDATE are executed in  FIG. 26 ), and (3) a processing period of the verified document with the use of a method employed according to an aspect of the invention (the subroutine CANONICALIZE and the subroutine GET_DIGEST are executed), when the document shown in  FIG. 111  and the document schema shown in  FIG. 112  are processed, with the use of the document verification service employed in accordance with the second embodiment. Here, the document shown in  FIG. 111  and the document schema shown in  FIG. 112  are included in the W3C XML Schema Specification (Part 0: Primer). As is obvious from  FIG. 109 , the processing period of the process (3) is longer than that of the process (1), but is smaller that that of the process (2). When the method employed according to an aspect of the invention is applied to the document having a small number of changed times and a large number of used times, the number of execution times is small in the process (2) and the number of execution times is large in the process (3). Accordingly, in many cases, the total processing period is smaller than that of the conventional method. 
       FIG. 110  shows correlation of the number of process times of an identical document and the processing period of the conventional method with the processing period of the method employed according to an aspect of the invention being set as 1, when the process times shown in  FIG. 109  is considered. As is obvious from  FIG. 110 , the processing period of the conventional method is small when the number of process times is small. However, when the number of the process times is 4, the processing period of the conventional method becomes longer than that employed according to an aspect of the invention for the first time. As the number of the process times becomes greater, the processing period employed according to an aspect of the invention becomes relatively smaller than that of the conventional method. That is to say, as the number of the process times becomes greater without changing the document to be processed, the effect caused by an aspect of the invention is greater. Thus, if the number of the process times is greater than a given value (4 is an example in  FIG. 110 ) after adding the subroutine CANONICALIZE or the subroutine GET_DIGEST to the subroutine VALIDATE in the method employed according to an aspect of the invention, the processing period is smaller than that of the conventional method in which the subroutine VALIDATE is repeated. 
     The document verification method employed according to an aspect of the invention, after it is verified whether the electronic document input satisfies a given condition, includes a step of determining whether or not there is a change that influences the verification result in at least one of the electronic document and the given condition, and if it is determined that there is a change that influences the verification result in at least one of the electronic document and the given condition, further includes a step of verifying the electronic document whether the electronic document satisfies the given condition to output a verification result and if it is determined that there is a change, output a result whether it is verified most recently that the electronic document satisfies the given condition, as a verification result. The steps are realized by executing the steps on CPU. The determining portion is realized by the verification process controlling portion  115 . The outputting portion is realized by the document verifying portion and the verification process controlling portion  115 . 
     The verification history retaining portion  511  of the system  500  employed according to an aspect of the invention retains only a set of the document digest value and the verification result. However, it is possible to configure to retain the information retained by the digest value in the SOAP header of the sent and received document employed according to embodiments of the invention. In addition, according to embodiments of the invention, the document verification apparatus is described as an independent service. However, it is possible to realize as a function applied to one or more services. 
     Fifteenth Embodiment 
     A fifteenth embodiment will be described.  FIG. 113  illustrates a system configuration in accordance with a fifteenth embodiment of the invention. Referring to  FIG. 113 , a system  600  is provided with a document verification service system  601  and service systems  621  through  62 N. The document verification service system  601  is capable of sending and receiving messages to and from the service systems  621  through  62 N over a public network  630 . The document verification service system  601  receives a message that requests for the verification of a structured document from the service systems  621  through  62 N, and sends a message of the verification result. Such sent and received message includes information for verification, as will be described later in detail. The document verification service system  601  is provided for verifying whether or not a structured document that has been input satisfies a given document schema. The document verification service system  601  promotes efficiency of the verification process with the use of the information for verification. 
     The document verification service system  601  includes a controller  602 , a message sending and receiving portion  603 , a message memory  604 , an input/output portion  605 , a verification information memory  606 , a document instance memory  607 , a document schema memory  608 , a canonicalization portion  609 , a digest value calculating portion  610 , a document divider  611 , a validity verifying portion  612 , and a verification result outputting portion  613 . 
     The document divider  611  divides the structured document into two or more portions on the basis of a structural feature of the document schema, as a method of dividing the structured document in view of data structure. The controller  602 , after such divided structured document is verified whether or not it satisfies the document schema, determines whether or not there is a change that influences the verification result in at least one of such divided portions of the structured document and the document schema. 
     The verification result outputting portion  613  verifies whether or not a specific portion, in which the controller  602  determines that there is a change that influences the verification result from among such divided portions of the structured document, satisfies the document schema to set as the verification result. With respect to the portion where it is determined that no change is made, the verification result outputting portion  613  sets the result of the time when the respective portions are verified whether the portions satisfy the condition most recently. The verification result outputting portion  613  outputs the verification result of the whole structured document input with the above-mentioned result. 
     Meanwhile, the document divider  611 , for example, extracts a structural feature of the document schema from one document schema. At this time, when one or more other document schemata are utilized, the document divider  611 , as an element that composes one document schema, extracts an element that uses another document schema, as a structural feature. For example, the structured document is written in XML and the document schema is written in W3C XML Schema, the element that uses another document schema is expressed by importing another document schema. The document divider  611  divides the structured document with a unit of the element that uses another document schema. 
     The document divider  611  may extract a document element necessary for adjusting to the document schema on the basis of one document schema, as a structural feature of the document schema. Also, the document divider  611  may extract the document element that is allowed to appear multiple times in the document schema on the basis of one document schema, as a structural feature of the document schema. For example, the document divider  611  specifies the necessary document element on the basis of a particle in the document schema, when the structural document of the document schema is written in XML and the document schema is written in W3C XML Schema. 
     Also, the document divider  611  may extract the structural feature of the document schema on the basis of multiple document schemata. In this case, when multiple document schemata are a document schema for inputting and a document schema for outputting for one document service, the document divider  611  extracts a common portion that is common to the document schema for inputting and the document schema for outputting, as a structural feature of the document schema. Then, the document divider  611  divides the structured document as a unit of the common portion of the document schema for inputting and the document schema for outputting. For example, the document divider  611  specifies the document schema for inputting and the document schema for outputting for one document service on the basis of a WSDL document of one document service, when the structural document of the document schema is written in XML and the document schema is written in W3C XML Schema. 
     In an example of focusing on the processing, the document divider  611  divides the structured document into two or more portions according to the change made to the structured document. At this time, the document divider  611  specifies a possibility of change to be made to the structured document, before a change is made to the structured document. For example, the document divider  611  specifies a possibility of change to be made to the structured document, on the basis of the document schema for inputting and the document schema for outputting, in which the process of making a change to the structured document is described. The document divider  611  may extract a common portion of multiple document schemata to be used in a group of linked document services, as a structural feature of the document schema, if multiple document schemata are those used by the group of linked document services. 
     At this time, the document divider  611  specifies multiple document schemata used in the group of the document services, on the basis of the information that forms a linkage. For example, the structured document is written in XML, and the document schema is written in W3C XML schema, and the information that forms a linkage is written in BPEL4WS. In an alternative example, the document divider  611  pursues the document processed by a linked document service to specify multiple document schemata used in the group of linked document services. 
     The document divider  611  is capable of specifying a possibility of a change made to the structured document on the basis of change information that becomes public by the process of making a change to the structured document. The change information becomes public, for example, by notifying to a verification processing apparatus, with the use of a registry service, with the use of a service description language, and with the use of an inquiry interface. 
     The document divider  611  may specify a possibility of change for the structured document according to the change made to the structured document. Specifically, the document divider  611  checks a change made to the structured document by sampling the structured document. For instance, the document divider  611  checks a change made to the structured document by sampling an input document and an output document of one service. The document divider  611  is capable of checking a change made to the structured document by sampling a group of documents used by the linked services. For example, the document divider  611  takes a sample of the group of documents to be used in a service linked in a hub for linked services. The document divider  611  rakes a sample of the structured document by pursuing a message flow. 
     The controller  602  determines that there is a change that influences the verification result, in the respective portions of such input structured document, if the information obtained by executing a given calculation on the respective portions of the structured document at the time when the structured document is verified most recently is different from the information obtained by executing a given calculation on the respective portions of such input structured document. The controller  602  determines that there is a change that influences the verification result, in the respective portions of a given document schema, if the information obtained by performing a given calculation on a given document schema at the time when the structured document is verified most recently is different from the information obtained by performing a given calculation on a given document schema. 
     Here, a given calculation includes at least one of pre-processing and a process of applying one-directional function. Preprocessing is, for example, a canonicalization process that absorbs the fluctuations of description in the structured document. The preprocessing may be a process of producing at least one of the document element and a tree having nodes whose contents does not include the document element attribute or the document element. The process of applying one-directional function is, for example, a process of applying a digest function that includes MD5 algorithm or SHA1 algorithm. The process of applying one-directional function may be a process of applying the pseudo-random algorithm having repeatability that includes a linear congruential method or Mersenne Twister. 
     The document divider  611  generates a document schema fragment to verify such divided portions according to the division of the structured document. The verification result outputting portion  613  may verify a portion where it is determined that there is a change in the structured document according to the document schema fragment. At this time, the document divider  611  generates the document schema fragment after the controller  602  determines that there is a change to a specific portion of the structured document. The document schema memory  608  retains the document schema fragment used in the verification of the structured document, and the validity verifying portion  612  reuses the document schema fragment retained when another structured document having an identical document schema is verified. 
     The validity verifying portion  612 , in verifying the portion of the document where it is determined that there is a change made to the structured document, verifies the structured document, according to the division of the structured document divided by the document divider  611  without verifying a lower-level structure of a specific document element, considering that the lower-level structure satisfies the document schema with an existence of a specific document element. 
       FIG. 114  is a flowchart of a fundamental verification process of the document verification service system  601 . Specifically,  FIG. 114  is a flowchart of a fundamental verification process from receiving a verification request message to sending a verification result message. The process flow shown in  FIG. 114  is executed by the controller  602 . 
     In the above-described process flow, the verification process is more efficient due to the following reasons. 
     (1) In the structured document in which the verification is once implemented, the verification result is identical to the last time, if there is no change in the structured document or the document schema. Accordingly, the verification is not carried out one again. 
     (2) It is easy to determine whether or not there is a change in the structured document or the document schema, by comparing the values generated from a given calculation such as the calculation of the digest value. 
     (3) With the preparation of the verification result of the respective portions divided from the structured document and the value generated by a given calculation, if there is a change in the structured document, it is possible to obtain the whole verification result of the structured document by verifying only the portion that includes the portion changed. 
     A description will be given in more detail. Referring to  FIG. 114 , the controller  602  determines whether or not the received message includes the information for verification. If the received message includes information for verification (“Yes” at step S 2001 ), the canonicalization portion  609  canonicalizes the document schema used for verification, at step S 2002 . Next, the controller  602  calculates the digest value of the document schema with the use of the digest value calculating portion  610 , at step S 2003 . If such calculated digest value is matched with the value in the information for verification (“Yes” at step S 2004 ), the controller  602  divides the structured document to be verified according to a divided position in the information for verification, with the use of the document divider  611 , at step S 2005 . 
     The controller  602  canonicalizes the respective portions divided by the canonicalization portion  609  at step S 2006 , and calculates the digest values of such divided respective portions with the use of the digest value calculating portion  610  at step S 2007 . If all of such calculated digest values are matched with the values in the information for verification (“Yes” at step S 2008 ), the controller  602  copies the information for verification of the received message at step S 2009 , and goes to step S 2022 . If all of the calculated digest values are not matched with the values in the information for verification (“No” at step S 2008 ), the controller  602  verifies the validity on the portion in which the digest value is not matched by the validity verifying portion  612 , and generates the verification result at step S 2010 . The controller  602  generates the verification result of the whole document from the generated verification result and the verification result in the information for verification for the portion relating to the digest value at step S 2011 . 
     The controller  602  calculates the digest value of the portion in which the digest values are not matched, with the use of the digest value calculating portion  610  at step S 2012 . The controller  602  generates the information for verification that is overwritten by the newly generated information for verification for the portion in which the digest values are not matched and a newly calculated digest value, with respect to the copy of the information for verification of the received message as the information for verification for transmission at step S 2013 , and processing goes to step S 2022 . If the received message does not include the information for verification at step S 2001 , or if such calculated digest value is not matched with the value in the information for verification, the controller  602  divides the document to be verified with the use of the document divider  611  at step S 2014 . The controller  602  canonicalizes the respective portions divided by the canonicalization portion  609  at step S 2015 . 
     The controller  602  verifies the validity of the respective portions with the use of the validity verifying portion  612 , and generates the verification result at step S 2016 . The controller  602  generates the verification result of the whole structured document from the verification results of the respective portions at step S 2017 , calculates the digest values of the respective portions with the use of the digest value calculating portion  610  at step S 2018 , canonicalizes the document schema used in the verification with the use of normalization portion  609  at step S 2019 , and calculates the digest value of the document schema with the use of the digest value calculating portion  610  at step S 2020 . The controller  602  generates the information for verification that includes the verification result, the divided portion, and the digest value at step S 2021 , and processing goes to step S 2022 . Lastly, the controller  602  sends the message that includes the information for verification to the service system where the request is issued at step S 2022 . 
     Sixteenth Embodiment 
     A sixteenth embodiment will be described.  FIG. 115  illustrates a system configuration in accordance with the sixteenth embodiment of the invention. In the present embodiment, a document verification service system  650  verifies the structured document exchanged between a buyer-side system  631  and a seller-side system  632  in procurement of supplies and equipment. In accordance with the present embodiment, universal business language (UBL) 1.0 recommended by Organization for the Advancement of Structured Information Standards (OASIS) is employed in the exchange of the structured document between the buyer-side system  631  and the seller-side system  632  in the procurement of supplies and equipment. 
       FIG. 116  shows a UBL procurement process and a schema used. In UBL, as shown in  FIG. 116 , the structured document exchanged between a buyer and a seller in a procurement process is defined by the document schemata such as “Order”, “OrderResponseSimple”, and the like. As a data format, XML is employed in the structured document, W3C XML Schema in the document schema, and SOAP in the message. 
     In the present embodiment, the document divider  611  extracts a structural feature of the document schema on the basis of one document schema as a division method of the structured document. Also, as a document schema, the document schema used for the procurement process of UBL is employed. Here, one document schema imports another document schema, and accordingly, the structured document is divided as an example. As a dividing point specification, XPath expression that represents the document element, which is a root element of such imported document schema, is generated. As a given calculation method, the canonicalization portion  609  implements the canonicalization process as preprocessing, and the digest value calculating portion  610  performs the calculation of the digest value as a process of applying one-directional function. 
     The digest value calculating portion  610  calculates the digest value of a partial structure a in which the document element specified as a dividing point and a lower-level element thereof are deleted and the digest value of a partial structure b in having only the element and the lower-level element. A method of generating a fragment is employed for the verification method of such divided structured document. Lazy evaluation generates the document schema fragment. As the document schema fragment, there are generated the document schema fragment in which the document element specified as a dividing point is deleted from an original document schema and the document schema fragment in which the document element specified as a dividing point is set as a root. The former document schema fragment is used for verification of the partial structure a, and the latter document schema fragment is used for verification of the partial structure b. 
     As a modification of the sixteenth embodiment, a division by an essential element and a recursive element, another preprocessing and a process of applying one-directional function, a fragment reuse, and the lazy evaluation are now mentioned to cover the description. 
     A description will be given of respective functional portions. The controller  602  has a function of controlling the overall process of the system. The message sending and receiving portion  603  has a function of sending and receiving the message with other service systems on the public network  630 . The message received by the present system includes at least a message that is issued from another service system to request for the verification of the structured document. The message sent by the present system includes a message that includes a verification result to another system to respond to the received verification request. 
     The message memory  604  has a function of storing the message received by the message sending and receiving portion  603  and the message generated for sending to another system from the present system. The input/output portion  605  has a function of providing the information to the administrator of the present system and a function of receiving an instruction to the system from the administrator. The document instance memory  607  has a function of storing the structured document to be verified and the partial structure created by the document division, as will be described later. The document schema memory  608  has a function of storing the document schema used for verification and the document schema fragment created by the document division, as will be described later. The document schema stored in the document schema memory  608  is defined by UBL 1.0. 
     The canonicalization portion  609  has a function of implementing a canonicalization process to absorb the fluctuations of description in the structured document, as a preprocessing of the digest value calculation. Here, the canonicalization process is a process of absorbing the fluctuations of description occurred by processes irrelevant to the original functions of the respective programs, when the document is sequentially processed by multiple programs. The processes irrelevant to the original functions of the respective programs include, for example, addition of space or line feed, conversion of character code, and the like. It is possible to provide identical documents having an identical description, by carrying out the canonicalization process on the structured document. In the present embodiment, the canonicalization portion  609  carries out the canonicalization process according to Canonical XML recommended by W3C. 
     The digest value calculating portion  610  has a function of calculating the digest value of the document schema in the document schema memory  608  and that of a partial structure in the document instance memory  607 . A unique digest value is calculated from a given piece of electronic information. Accordingly, with respect to whether or not there is a change in the electronic information, it is possible to determine that there is no change in the electronic information, if the former digest value and the current digest value are compared and are matched. It is possible to determine that there is a change in the electronic information, if the former digest value and the current digest value are compared and are not matched. In the sixteenth embodiment, the digest value is used for determining whether or not there is a change in the partial structure or the document schema in the structured document. As a process of applying one-directional function, a process of applying the digest function such as MD5 algorithm, SHA algorithm, or SHA1 algorithm can be utilized. 
     The document divider  611  has a function of dividing the structured document to be verified into partial structures. In the sixteenth embodiment, the structured document to be verified is divided into partial structures. At this time, the document divider  611  divides the structured document, focusing on one structural feature of the document schema. The structural feature used in accordance with the sixteenth embodiment is that one document schema includes another document schema as a component element thereof. 
       FIG. 117  shows an example of a schema import. In the example shown in  FIG. 117 , a document schema OrderResponseSimple imports another document schema such as UBL-CoreComponentParameters-1.0 or the like, and uses as a component element. Such imported document schema forms a meaningful block in a document such as order information in an order sheet. In many cases, the meaningful block in the document is generated or renewed in a document processing in a lump, or is only referred to without change. Therefore, there is a little chance that a change in one portion influences another portion, in a case where it is configured such that the document structure is divided, with focusing on a block, the verification is implemented on the portion, and the verification is further implemented according to the need. As a whole, it is possible to improve the efficiency of verification process. 
     The document divider  611  checks the structured document to be verified, and extracts the document element (multiple document elements depending on the case) that is a root element in the document schema to be imported, as a dividing point of the document structure. The document divider  611  generates the partial structure equal to and lower than the dividing point and a portion in which the partial structure is removed from the original structured document to store them in the document instance memory  607 . The document divider  611  generates the document schema fragment according to the document element to store in the document schema memory  608 . The document schema fragment employed in the present embodiment is a document schema for verifying such divided partial structure, and is a portion where a partial element is removed from the original document schema. Here, the necessity of the document schema fragment and the relationship between the document division and the document schema fragment are described by reference to a schematic view of  FIG. 118 . 
       FIG. 118  shows an example of a document schema fragment. A document instance shown in upper right of  FIG. 118  is assumed to satisfy an original document schema shown in upper left of  FIG. 118 . Here, if a document element BreakHere is a dividing point, a partial structure a and a partial structure b are generated. At this time, if the partial structures are verified with the use of the original document schema, the verification results thereof are both “invalid”. This is because both of the partial structures lack the document element specified as an essential element in the original document schema. As stated, even if the original document schema is used, there is an inconvenient case, in some cases, in verifying such divided partial structure. Accordingly, a consideration is given to a situation where the document schema for verification of the partial structure is generated from the original document schema. 
       FIG. 118  exemplarily shows a document schema fragment a and a document schema fragment b. The document schema fragment a removes a portion that specifies the BreakHere element from the original document schema. The document schema fragment b sets the BreakHere element as a root and removes other portions. In a case where the document instance shown in upper right of  FIG. 118  satisfies the original document schema, the result of verifying the partial structure a with the use of the document schema fragment a is “valid”, and the result of verifying the partial structure b with the use of the document schema fragment b is “valid”. In a case where the document instance shown in upper right of  FIG. 118  does not satisfy the original document schema, the result of “invalid” is obtainable in at least one of the verification results of the partial structures with the use of the document schema fragments. 
     It is thus possible to verify the partial structure and obtain the verification result as a whole structured document, by utilizing the document schema fragment. For ease of description of  FIG. 118 , it is assumed that the definitions of the partial structure b are all written between a start tag and an end tag of the document schema element BreakHere. However, in the document schema written in W3C XML Schema, the element included in a Composite element is defined outside of the Composite element, and a particle existent between the start tag and the end tag of the Composite element is defined, in some cases. Even in this case, the document divider  611  employed in the present embodiment includes a necessary definition in the document schema fragment. 
     The validity verifying portion  612  has a function of verifying whether or not a partial structure satisfies a specific document schema fragment. In the validity verification used in the present embodiment, the partial structure and the document schema fragment are generated as described. It is therefore possible to apply a general method of verifying the validity of the XML document on the document schema. The verification information memory  606  has a function of storing the information for verification for each structured document to be verified. 
       FIG. 119  is an example of the information for verification. The information for verification is composed of a boolean value as a most recent verification result of the whole structured document (element ResultOfDoc in  FIG. 119 ), the digest value of the document schema at the time of most recent verification (element SchemaDigest in  FIG. 119 ), and the information for verification in each portion of the structured document (element Part in  FIG. 119 ). The information for verification in each portion of the structured document is composed of the information of the dividing point of the structured document shown in the XPath expression (element DividingPoint in  FIG. 119 ), the boolean value as a most recent verification result of the portion of the structured document (element SchemaDigest in  FIG. 119 ), and the digest value of the portion of the structured document at the time of most recent verification (element PartDigest in  FIG. 119 ). When the portion of the structured document is shown in the portion from which the portion equal to and lower than the dividing point is removed, which is the partial structure a, a null value is assigned to the content of the element DividingPoint. 
     The information for verification is sometimes included in the message, when the document verification is requested from another system. Also, when the result of the verification request is sent back, the information for verification is included in the message. In accordance with the present embodiment, SOAP envelope is used for exchanging the information with another system, and the information for verification is included in the header of the envelope. 
     The verification result outputting portion  613  newly generates the information for verification, or makes a copy from the verification request to store in the verification information memory  606 . Then, the verification result outputting portion  613  has a function of renewing the information for verification according to the process result of the document divider  611 , the validity verifying portion  612 , and the digest value calculating portion  610 . 
     A modification of the sixteenth embodiment is now described. As a division according to the structural feature of one document schema, an essential element and an optional element in the document structure may be divided in addition to the above-described dividing method. Alternatively, repeatedly appearing elements may be divided respectively. This is because the optional element and the repeatedly appearing element have a high possibility of adding or deleting. The division is capable of applying the information for verification that does not influence another portion, even if there is an addition or a deletion. 
     As an alternative modification of the sixteenth embodiment, a preprocessing may employ a process of generating at least one of the document element, the document element attribute, and a tree having the content of the node that does not include the document element, from the expression of a character string in the structured document to be verified. The preprocessing is a process that a prefix that denotes a name space or the difference in superficial expression of the character string is configured not to be influential, before one-direction function is applied to the DOM tree. The preprocessing corresponds to, for example, a process for a code fragment in DOMHASH defined by RFC2803. 
     As a further alternative modification of the sixteenth embodiment, the process of applying one-directional function may be a process of applying a pseudo-random algorithm that has repeatability that includes a linear congruential method or Mersenne Twister. If the pseudo-random algorithm that has repeatability is applied, it is possible to determine whether or not there is a change in a document portion by comparing the values, in a similar manner as described in the calculation of the digest value, without studying the portion in detail. 
     As a yet alternative modification of the sixteenth embodiment, the document schema fragment generated in the former verification process and stored in the document schema memory  608  may be reused, instead of the document divider  611  generating the document schema fragment for each verification request. For example, a consideration is given to a situation where the portion that corresponds to the document schema fragment b is reused. The document schema fragment and the digest value of the original document schema are associated with each other and stored in the document schema memory  608 . 
     If an element name of the document element that is a dividing point of a new verification request is matched with an attribute name of a root element of the document schema fragment, and the digest value of the document schema at that time is identical to the digest value of such associated and stored, the document schema fragment is provided for verifying the document element and the original document schema is not changed, thereby enabling the document schema fragment to be reused. As a yet alternative modification of the sixteenth embodiment, the lazy evaluation that generates the document schema fragment only after the verification is necessary as a result of comparing the digest values may be employed in the generation of the document schema fragment. 
     Seventeenth Embodiment 
     A seventeenth embodiment will be described.  FIG. 120  shows a configuration of a system  700 . A travel agency-side system  721 , a travel planning company-side system  722 , a first hotel-side system  723 , and a second hotel-side system  724  are connected on the network  630 . Referring to  FIG. 120 , a document verification service  701  employed in the present embodiment further includes a WSDL document instance memory  702 , as compared to the document verification service  601  shown in  FIG. 113 . 
     In the present embodiment, the method of dividing the structured document includes a method of extracting the structural feature from multiple document schemata and a method of specifying a possibility of change in the structured document from the document schema. The document schema uses the document schema for inputting and the document schema for outputting of a specific service, out of the document schemata used in a TravelXML demonstration experiment. In accordance with the present embodiment, the afore-described document schemata have a common portion. Accordingly, the document divider  611  extracts the common portion to divide the structured document. It is possible to learn the correlation between the document schema for inputting and the document schema for outputting from the WSDL document of the service. The dividing point is similar to that of the sixteenth embodiment. The TravelXML is a standard recommended by a nonprofit organization XML consortium. 
     A deemed verification is employed for the verification of such divided document. The validity verification algorithms are different in verifying a partial structure equal to and lower than a dividing point and in verifying the partial structure excluding the portion equal to and lower than the dividing point. In verifying the partial structure equal to and lower than the dividing point, a generally used verification is employed in a similar manner as employed for the original document schema, except that the dividing point is allowed to be a root. In verifying the partial structure excluding the portion equal to and lower than the dividing point, at the time of recognizing the dividing point, the verification is skipped on the assumption that the structure equal to and lower than the dividing point satisfies the document schema, and the verification continues. 
     A given calculation method is almost similar to that employed in the sixteenth embodiment. However, the verification method employed in the seventeenth embodiment is different from that employed in the sixteenth embodiment. Accordingly, there is a slight difference in the partial structure for the calculation of the digest value. The partial structure a includes the information that shows an existence of the document element that serves as a dividing point. Here, with respect to XML, the information that shows an existence of the document element that serves as a dividing point is a pair of the start tag and the end tag of the document element. The information that serves as the dividing point is excluded in the partial structure b. As a modification of the seventeenth embodiment, such extracted common portion is reused and an input/output document is sampled for narrowing down the division are now mentioned to cover the description. 
     In the present embodiment, the structured document used in inventory inquiry and reservation arrangement of a package tour is verified by the document verification service system  701 . In the present embodiment, the buyer-side system and the seller-side system are communicated with the use of TravelXML. A series of procedure in the inventory inquiry and reservation arrangement initiated by the inquiry of the travel agency-side system  721  are mounted on the travel planning company-side system  722 . As a data format, XML is used for the structured document, W3C XML Schema is used for the document schema, WSDL is used for description of a service interface, and SOAP is used for message. 
     The functional portions are respectively described. However, the same components as described in the sixteenth embodiment are omitted. The WSDL document instance memory  702  has a function of storing a WSDL document in which the service interface of another system is described. The WSDL document, as will be described later in detail, is used for dividing the structured document to be verified. The WSDL document instance memory  702  has a validity verification method different from that employed in the sixteenth embodiment. Accordingly, the partial structure is not described in the functional portion. The document schema memory  608  employed in the present embodiment has a function of storing the document schema written in the WSDL document stored in the WSDL document instance memory  702 . The validity verification method employed in the present embodiment is different from that employed in the sixteenth embodiment, and the document schema fragment is not stored in the functional portion. 
     The document divider  611  focuses on the structural feature of two document schemata, and has a function of determining the dividing point of the structured document to be verified. Here, two document schemata are the document schema for inputting and the document schema for outputting in one system, which is written in one WSDL document stored in the WSDL document instance memory  702  (see  FIG. 122 ).  FIG. 122  illustrates a schematic view of the WSDL document instance in accordance with the seventeenth embodiment. 
     The document divider  611  extracts the common portion in the afore-described schemata, and divides the document portion if the document portion of the structured document to be verified is included in the common portion. This is because there is a possibility that an identical partial structure and content thereof are included in the input portion and the output portion, which are the common portion. For example, traveler information and the package tour information are included in the input and output of a vacant room inquiry to a hotel, but the information is just referred to by the hotel and is not overwritten. The input portion and the output portion have the identical partial structure and content thereof. By implementing the verification with such divided common portion and implementing the verification as necessary again, the partial structure and the content that are not changed needs not to be verified again, thereby enabling the verification efficiency to be improved. Such determined dividing point is described in XPath expression as a dividing point for the information for verification in a similar manner as described in the fifteenth embodiment. 
     The document divider  611  employed in the present embodiment is different from that employed in the sixteenth embodiment and does not generate the partial structure or the document schema fragment, since the validity verification methods are different, as will be described later. 
     The validity verifying portion  612  is different from a generally used algorithm used for validity verification, and changes the validity verification algorithm, in a case where the partial structure equal to and lower than the dividing point and in a case where the partial structure that excludes the portion equal to and lower than the dividing point is verified. This verification algorithm is described by reference to  FIG. 124 .  FIG. 124  schematically shows the verification method of the validity verifying portion  612  in accordance with the seventeenth embodiment. 
     The document schema, the document instance, and the document element BreakHere that serves as the dividing point shown in  FIG. 124  are similar to those shown in  FIG. 118 . In the verification of the partial structure that excludes the portion equal to and lower than the document element BreakHere that is the dividing point, the verification is carried out from the document element root, in left to right, depth first order. Then, the existence of the dividing point, namely, the start tag and the end tag of the BreakHere element are confirmed. If there are the start tag and the end tag, the verification continues without verifying the inside thereof. If not, it is determined that there is no dividing point and the result of “invalid” is returned and the verification is completed. In the verification of the partial structure equal to and lower than the document element BreakHere that is the dividing point, the generally used verification is implemented except that another portion is not verified. 
     A modification of the seventeenth embodiment is now described. As a modification of the seventeenth embodiment, the document divider  611  may extract and store the common portion in the document schema, whenever the WSDL document is newly stored in the WSDL document instance memory  607 . Such extracted portion may be used again in dividing the structured document. As an alternative modification, the dividing point may be narrowed down by sampling the verification information of the input/output document, if there are multiple common portions. For example, in such sampled multiple documents, if the digest values of multiple document portions corresponding to the common portion are always aligned and there is no change in one document, an upper element that includes the common portion may be divided. 
     Eighteenth Embodiment 
     An eighteenth embodiment of the invention will be described.  FIG. 121  illustrates a system configuration in accordance with the eighteenth embodiment. In a system  800 , the travel agency-side system  721 , the travel planning company-side system  722 , the first hotel-side system  723 , the second hotel-side system  724 , and the linkage service-side system  825  are connected on the network  630 . A BPEL4WS document instance memory  802  is additionally provided in a document verification service  801 . 
     In the present embodiment, the structured document used in the inventory inquiry and reservation arrangement of a package tour is verified by the document verification service system  800  in a similar manner as described in the seventeenth embodiment. The difference from the seventeenth embodiment is that a series of procedure of in the inventory inquiry and reservation arrangement initiated by the inquiry of the travel agency-side system  721  is mounted on the linkage service-side system  825  and are written with the use of BPEL4WS. Accordingly, in accordance with the present embodiment, messages are exchanged with the use of the linkage service-side system  825  that serves as a hub, and a series of procedure are carried out. 
     As a division method of the structured document, the method of extracting a feature from multiple document schemata and the method of specifying a possibility of change in the structured document from the structured document in a similar manner as described in the seventeenth embodiment. What is different is that the document schema in the linked services is used as a document schema. The document schema used in a specific process scenario is employed from among those used in a TravelXML demonstration experiment. In this example, those document schemata have a common portion, and the common portion is extracted for dividing the structured document. A method of finding the common portion of the document schemata utilizes the WSDL document referred to by the VPEL4WS document, which uses BPEL4WS in the description of linkage. Here, the dividing point is specified in a similar manner as described in the sixteenth embodiment. Such divided structured document is verified and calculated in a similar manner as described in the sixteenth embodiment. 
     As a modification of the eighteenth embodiment, the division is further narrowed down by sampling the structured document, which is exchanged between the linked services, with a BPEL4WS execution process that serves as a hub for linkage. This is now mentioned to cover the description. 
     Hereinafter, the functional portions are described. However, the same components as those of the seventeenth embodiment will be omitted. The BPEL4WS document instance memory  802  has a function of storing the BPEL4WS document to be used in the linkage service side. The BPEL4WS document, as will be described later, is used for dividing the structured document to be verified. The document divider  611  has a function of focusing on the structural feature of multiple document schemata and determining the dividing point of the structured document to be verified. Here, multiple document schemata is a document schema written in multiple WSDL documents linked to one BPEL4WS document stored in the BPEL4WS document instance memory  802  (see  FIG. 123 ).  FIG. 123  illustrates a schematic view of the BPEL4WS document instance in accordance with the eighteenth embodiment. 
     The document divider  611  extracts the common portion of the document schema. If the document portion of the structured document to be verified is included in the common portion, the document portion is divided. The reason the common portion is used is similar as described in the sixteenth embodiment. 
     As a modification of the above-described embodiment, in a case where there are multiple common portions, the information for verification included in a message input into or output from the linkage service-side system  825  is sampled for narrowing down the dividing point. For example, in multiple documents from which samples are taken, if the digest values of the multiple document portions that correspond to the common portion are always aligned and there is no change, an upper element that includes the common portion may be divided. 
     Nineteenth Embodiment 
     A nineteenth embodiment will be described.  FIG. 125  illustrates a system configuration in accordance with the nineteenth embodiment of the invention. In a system  900 , the service systems of a travel agency-side system  921 , a car rental company-side system  922 , a hotel-side system  923 , and a railroad company-side system  924  are connected to the network  630 . In a document verification service  901 , a document change/reference information memory  902  is additionally provided. 
     In the present embodiment, a method of dividing the structured document employs a method of notifying to a verification process from among the processes that the respective services open whether or not there is a change. The verification method and the method of performing a given calculation on such divided structured document are similar as described in the sixteenth embodiment. Here, as a modification of the nineteenth embodiment, open to the registry, extension of a service description language (specifically, WSDL), and a dedicated inquiry interface are now mentioned to cover the description. The message flow is pursued and sampled for narrowing down the dividing point, which is also mentioned now. 
       FIG. 126  is a schematic view showing a message flow in accordance with the nineteenth embodiment. In the present embodiment, the travel agency-side system  921  is a starting point of a travel reservation process. If there is a vacancy in a schedule candidate of such received itinerary, the railroad-side system  924 , the car rental company-side system  922  respectively write reservation information and passes a renewed itinerary to a system in the next process. If there is no vacancy, a reservation failure is notified to the travel agency-side system  921  to terminate the process. For ease of description,  FIG. 126  shows only a successful case. 
     The respective systems  921  through  924  related to a series of processes request the document verification service system  901  for verification of the itinerary. Here, in the present embodiment, the systems  921  through  924  follows an instruction from the travel agency before receiving the itinerary, and have a knowledge of the system in the next process. The processes are respectively mounted on the respective systems so that receive the itinerary and pass onto the next process. 
     Hereinafter, the respective functional portions are described. The same components as described in the above embodiments are omitted. The document schema memory  608  employed in the present embodiment stores the document schema of the itinerary. The document change/reference information memory  902  stores the information having a set of the element name and an edit type (a reserved word that represents change or reference) of the document schema of the itinerary, with respect to the document element changed or referred to by each system. Here, the change includes addition or deletion of the document element and additional description of the content or overwriting. This information is written in an XML format together with the information for verification in the header portion of the verification request message sent from each system. 
     The document divider  611  employed in the present embodiment divides the structured document according to the information in the document change/reference information memory  902 . If an identical portion in the information stored in the document change/reference information memory  902  is referred to by multiple systems, it is possible to improve the efficiency of the verification process by dividing this portion in the structured document. On the other hand, if an identical portion is changed in the structured document in the multiple systems, that portion is divided. Such change no longer influences to another portion, thereby enabling the efficiency of the verification process to be improved. 
     As a modification of the present embodiment, when each system registers the service in a registry service to open the service, the document change/reference information may also be registered simultaneously, so that the document verification service system  901  may confirm the registry and divide the structured document according to the document change/reference information to be changed. In particular, in a case where there is a document schema of industry standard such as the travel XML, the message having an identical type is managed uniformly on the basis of the document schema of industry standard, even in multiple systems managed in different organizations. In such a case, in view of the use of the network bandwidth, it is preferable in some cases that the document verification service system  901  should refer to the registry service according to the need, instead of the document change/reference information being included in the message received by the document verification service system  901   
     As an alternative modification, the service description language that defines the input and output of each service is extended may be extended to describe the document change/reference information. For example, in WSDL, the document structure and the type of content of an input message and an output message can be defined as a message element. However, WSDL may be extended such that correspondence between a new element that represents the document change/reference information and the message element can be described. As an alternative modification, each system may have a dedicated interface that inquires the document change/reference information such that the document verification service system  901  inquires about the document change/reference information for each system as necessary. 
     As a further alternative modification, the document verification service system  901  may take a sample from the message that issues the verification request, and may narrow down the dividing point according to the level of the change in the structured document, which actually occurs in a series of processes. For example, in a case where there is a possibility that one system changes one portion of the structured document but the change is not made every time, the portion is represented as “change” as the document change/reference information. In such a case, if there is a small possibility of the change in the structured document, it is more effective in some cases, in view of the process period for the division, that the verification process is implemented without dividing the portion in the structured document. 
     As described heretofore, in accordance with the fifteenth through nineteenth embodiments of the invention, the structured document is divided according to the structural feature of the document schema and the document process, and the information for verification is generated in each portion to be used for verification. By this, as far as the structured document is changed, the verification process may be implemented on the document only once. If the structured document is changed, only the portion having a change has to be verified again, thereby improving the efficiency of the verification process in the structured document. It is therefor possible to provide a document verification apparatus, a document verification method, and a program product therefor, by which processing efficiency is improved by alleviating workloads of a verification process implemented on an electronic document. 
     The foregoing description of the embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Obviously, many modifications and variations will be apparent to practitioners skilled in the art. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling others skilled in the art to understand the invention for various embodiments and with the various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.