Расширяемый формат компьютерных файлов

on

Настоящее изобретение позволяет обеспечить расширяемый формат файла, совместимый с предыдущей, текущей и будущей версиями прикладной программы. Технический результат заключается в возможности использования предыдущих версий прикладной программы для работы с файлом. Настоящее изобретение предусматривает включение водяных знаков версии файла в исходный файл данных прикладной программы. Водяные знаки версии файла могут указывать различные свойства исходного файла данных. Водяные знаки версии файла могут включать в себя водяной знак старшей версии, водяной знак последней версии, водяной знак младшей версии, водяной знак версии создания и объектный водяной знак версии. Настоящее изобретение предусматривает использование водяных знаков версии файла для определения, соответствует ли файл или конкретная информация в файле предыдущей, действующей или будущей версии прикладной программы. Соответственно настоящее изобретение позволяет загружать или сохранять исходный файл данных на основании результатов определения. 20 н. и 41 з.п. ф-лы, 9 ил.

1. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и более поздней версией прикладной программы, содержащий этапы, на которыхобеспечивают водяной знак высокой версии в исходном файле данных, причем водяной знак высокой версии указывает самую старшую версию прикладной программы, использовавшуюся для сохранения файла,сравнивают водяной знак высокой версии с действующей версией прикладной программы, чтобы определить, соответствует ли исходный файл данных более поздней версии прикладной программы, изагружают исходный файл данных в действующую версию, причем, если на этапе сравнения определено, что исходный файл данных соответствует более поздней версии, то этап загрузки содержит этапы, на которыхигнорируют неизвестную информацию в исходном файле данных изагружают известную информацию из исходного файла данных в действующую версию.2. Способ по п.1, отличающийся тем, что исходный файл данных содержит список свойств объекта.3. Способ по п.2, отличающийся тем, что список свойств объекта содержит массив списков свойств объекта.4. Способ по п.3, отличающийся тем, что дополнительно содержит этапы, на которыхотслеживают позицию объектов в массиве списков свойств объекта иобновляют массив списков свойств объекта на основании позиции объектов, отслеженных на этапе отслеживания.5. Способ по п.1, отличающийся тем, что каждая из неизвестной и известной информации содержит свойство списка свойств объекта.6. Способ по п.1, отличающийся тем, что дополнительно содержит этап, на котором сохраняют измененную версию исходного файла данных, причем этап сохранения содержит этапы, на которыхзаписывают поверх известной информации из исходного файла данных информацию из измененной версии иоставляют неизвестную информацию из исходного файла данных, чтобы неизвестная информация оставалась доступной более поздней версии.7. Способ по п.1, отличающийся тем, что дополнительно содержит этапы, на которыхобеспечивают водяной знак последней версии в исходном файле данных, причем водяной знак последней версии указывает последнюю версию прикладной программы, использовавшуюся для сохранения файла, иопределяют характеристики исходного файла данных, сравнивая водяной знак последней версии с действующей версией прикладной программы.8. Способ по п.7, отличающийся тем, что если на этапе определения определено, что водяной знак последней версии соответствует версии прикладной программы, которая является предыдущей по отношению к действующей версии, то способ дополнительно содержит этап преобразования информации в действующей версии прикладной программы на основании информации в исходном файле данных.9. Способ по п.1, отличающийся тем, что дополнительно содержит этапы, на которыхобеспечивают водяной знак низкой версии в исходном файле данных, причем водяной знак низкой версии указывает самую младшую версию прикладной программы, использовавшуюся для сохранения файла,определяют характеристики исходного файла данных, сравнивая водяной знак низкой версии с действующей версией прикладной программы.10. Способ по п.1, отличающийся тем, что дополнительно содержит этапы, на которыхобеспечивают объектный водяной знак версии для объекта в исходном файле данных, причем объектный водяной знак версии указывает самую низкую версию прикладной программы, которая может интерпретировать все свойства в объекте, иопределяют характеристики исходного файла данных, сравнивая объектный водяной знак версии с версией объекта в действующей версии прикладной программы.11. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.1.12. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и предыдущей версией прикладной программы, способ содержит этапы, на которыхобеспечивают водяной знак высокой версии в исходном файле данных, причем водяной знак высокой версии указывает самую старшую версию прикладной программы, использовавшуюся для сохранения файла,сравнивают водяной знак высокой версии с действующей версией прикладной программы, чтобы определить, соответствует ли исходный файл данных предыдущей версии прикладной программы, изагружают исходный файл данных без изменений в действующую версию, если на этапе сравнения определено, что исходный файл данных соответствует предыдущей версии.13. Способ по п.12, отличающийся тем, что дополнительно содержит этапы, на которыхобеспечивают водяной знак последней версии в исходном файле данных, причем водяной знак последней версии указывает последнюю версию прикладной программы, использовавшуюся для сохранения файла, иопределяют характеристики исходного файла данных, сравнивая водяной знак последней версии с действующей версией прикладной программы.14. Способ по п.13, отличающийся тем, что если на этапе определения определено, что водяной знак последней версии соответствует версии прикладной программы, которая является предыдущей по отношению к действующей версии, то способ дополнительно содержит этап, на котором преобразуют информацию в действующей версии прикладной программы на основании информации в исходном файле данных.15. Способ по п.12, отличающийся тем, что исходный файл данных содержит список свойств объекта.16. Способ по п.13, отличающийся тем, что список свойств объекта содержит массив списков свойств объекта.17. Способ по п.16, отличающийся тем, что дополнительно содержит этапы, на которыхотслеживают позицию объектов в массиве списков свойств объекта иобновляют массив списков свойств объекта на основании позиции объектов, отслеженных на этапе отслеживания.18. Способ по п.14, отличающийся тем, что дополнительно содержит этапы, на которыхсохраняют информацию, преобразованную на этапе преобразования, исохраняют непреобразованную старую информацию из исходного файла данных.19. Способ по п.14, отличающийся тем, что дополнительно содержит этапы, на которыхсохраняют информацию, преобразованную на этапе преобразования,генерируют информацию, которая соответствует старой информации из исходного файла данных, исохраняют информацию, сгенерированную на упомянутом этапе генерации.20. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.12.21. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и предыдущей версией прикладной программы, способ содержит этапы, на которыхобеспечивают водяной знак последней версии в исходном файле данных, причем водяной знак последней версии указывает последнюю версию прикладной программы, использовавшуюся для сохранения файла,сравнивают водяной знак последней версии с действующей версией прикладной программы, чтобы определить, соответствует ли исходный файл данных предыдущей версии прикладной программы, изагружают исходный файл данных в действующую версию,причем если на этапе сравнения определено, что исходный файл данных соответствует предыдущей версии, то этап загрузки содержит этапы, на которыхопределяют, содержит ли предыдущая версия удаленный элемент данных, который был удален из действующей версии,игнорируют старую информацию в исходном файле данных, соответствующую удаленному элементу данных, если на этапе определения определено, что предыдущая версия содержит удаленный элемент данных, изагружают информацию из исходного файла данных, которая соответствует элементу данных, отличному от удаленного элемента данных.22. Способ по п.21, отличающийся тем, что удаленный элемент данных содержит свойство объекта.23. Способ по п.21, отличающийся тем, что удаленный элемент данных содержит объект.24. Способ по п.21, отличающийся тем, что дополнительно содержит этапы, на которыхсохраняют измененную версию исходного файла данных исохраняют информацию, соответствующую удаленному элементу данных исходного файла данных.25. Способ по п.21, отличающийся тем, что дополнительно содержит этапы, на которыхсохраняют измененную версию исходного файла данных, генерируют информацию, которая соответствует удаленному элементу данных из исходного файла данных, исохраняют информацию, сгенерированную на этапе генерации.26. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.21.27. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и предыдущей версией прикладной программы, способ содержит этапы, на которыхобеспечивают водяной знак последней версии в исходном файле данных, причем водяной знак последней версии указывает последнюю версию прикладной программы, использовавшуюся для сохранения файла,сравнивают водяной знак последней версии с действующей версией прикладной программы, чтобы определить, соответствует ли исходный файл данных предыдущей версии прикладной программы, изагружают исходный файл данных в действующую версию,причем если на этапе сравнения определено, что исходный файл данных соответствует предыдущей версии, то этап загрузки содержит этапы, на которыхопределяют, содержит ли действующая версия измененный элемент данных, относящийся к старой информации в исходном файле данных,преобразуют старую информацию из исходного файла данных в информацию, соответствующую измененному элементу данных, если на этапе определения определено, что действующая версия содержит измененный элемент данных, относящийся к старой информации в исходном файле данных, изагружают информацию, преобразованную на этапе преобразования, в действующую версию.28. Способ по п.27, отличающийся тем, что измененный элемент данных содержит свойство объекта.29. Способ по п.27, отличающийся тем, что измененный элемент данных содержит объект.30. Способ по п.27, отличающийся тем, что дополнительно содержит этап, на котором сохраняют измененную версию исходного файла данных, причем этап сохранения содержит этапы, на которыхсохраняют информацию, соответствующую измененному элементу данных,преобразуют на этапе второго преобразования информацию, соответствующую измененному элементу данных, в информацию, соответствующую старой информации и считываемую предыдущей версией, исохраняют преобразованную информацию, полученную на этапе второго преобразования.31. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.27.32. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией, предыдущей версией и более поздней версией прикладной программы, способ содержит этапы, на которыхобеспечивают водяной знак высокой версии в исходном файле данных, причем водяной знак высокой версии указывает самую старшую версию прикладной программы, использовавшуюся для сохранения файла,обеспечивают водяной знак последней версии в исходном файле данных, причем водяной знак последней версии указывает последнюю версию прикладной программы, использовавшуюся для сохранения файла,сравнивают водяной знак высокой версии с действующей версией прикладной программы, чтобы определить, содержит ли исходный файл данных свойства, соответствующие одной из: предыдущей версии, действующей версии или более поздней версии прикладной программы,сравнивают водяной знак последней версии с действующей версией прикладной программы, чтобы определить, содержит ли исходный файл данных дополнительные свойства, соответствующие одной из: предыдущей версии, действующей версии или более поздней версии прикладной программы, изагружают исходный файл данных в действующую версию,причем если на упомянутых этапах сравнения определено, что исходный файл данных содержит свойства, соответствующие другим версиям прикладной программы, то этап загрузки содержит этапы, на которыхопределяют, какие свойства исходного файла данных являются текущими, а какие свойства исходного файла данных устарели,загружают исходный файл данных в действующую версию на основании текущих свойств, определенных на этапе определения, иигнорируют устаревшие свойства, определенные на этапе определения.33. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией, предыдущей версией и более поздней версией прикладной программы, способ содержит этапы, на которыхобеспечивают водяной знак последней версии в исходном файле данных, причем водяной знак последней версии указывает последнюю версию прикладной программы, использовавшуюся для сохранения файла,сравнивают водяной знак последней версии с действующей версией прикладной программы, чтобы определить, соответствует ли последняя версия, использовавшаяся для сохранения исходного файла данных, предыдущей версии прикладной программы,преобразуют информацию в действующей версии прикладной программы на основании информации в исходном файле данных, если на этапе сравнения определено, что последняя версия, использовавшаяся для сохранения исходного файла данных, соответствует предыдущей версии, изагружают информацию, преобразованную на этапе преобразования.34. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и более поздней версией прикладной программы, причем исходный файл данных содержит список свойств объекта, отображаемого прикладной программой или являющегося частью прикладной программы, при этом способ содержит этапы, на которыхобеспечивают объектный водяной знак версии для объекта, отображаемого прикладной программой или являющегося частью прикладной программы, в упомянутом списке свойств объекта исходного файла данных, причем объектный водяной знак версии указывает самую младшую версию прикладной программы, которая может интерпретировать все свойства, содержащиеся в упомянутом объекте,сравнивают объектный водяной знак версии упомянутого объекта с версией объекта в действующей версии прикладной программы, чтобы определить, соответствует ли объект более поздней версии прикладной программы, изагружают исходный файл данных в действующую версию,причем если на этапе сравнения определено, что объект соответствует более поздней версии, то этап загрузки содержит этапы, на которыхигнорируют неизвестную информацию, соответствующую объекту в исходном файле данных, изагружают известную информацию, соответствующую объекту в исходном файле данных, в действующую версию.35. Способ по п.34, отличающийся тем, что дополнительно содержит этапы, на которыхобновляют список свойств объекта, включая в него информацию, преобразованную на этапе преобразования, иоставляют старую информацию в списке свойств объекта.36. Способ по п.34, отличающийся тем, что список свойств объекта содержит массив списков свойств объекта.37. Способ по п.36, отличающийся тем, что дополнительно содержит этапы, на которыхотслеживают позицию объектов в массиве списков свойств объекта иобновляют массив списков свойств объекта на основании позиции объектов, отслеженных на этапе отслеживания.38. Способ по п.34, отличающийся тем, что каждая из неизвестной и известной информации содержит свойство списка свойств объекта.39. Способ по п.34, отличающийся тем, что дополнительно содержит этап, на котором сохраняют измененную версию исходного файла данных, причем этап сохранения содержит этапы, на которыхзаписывают поверх известной информации из списка свойств объекта исходного файла данных информацию из измененной версии иоставляют неизвестную информацию из списка свойств объекта исходного файла данных, чтобы неизвестная информация оставалась доступной более поздней версии.40. Способ по п.34, отличающийся тем, что дополнительно содержит этапы, на которыхобеспечивают объектный водяной знак последней версии в исходном файле данных, причем объектный водяной знак последней версии указывает последнюю версию прикладной программы, использовавшуюся для записи объекта, иопределяют характеристики объекта в исходном файле данных, сравнивая объектный водяной знак последней версии с действующей версией прикладной программы.41. Способ по п.40, отличающийся тем, что если на этапе определения определено, что объектный водяной знак последней версии соответствует версии прикладной программы, которая является предыдущей по отношению к действующей версии, то способ дополнительно содержит этап, на котором преобразуют информацию в действующей версии прикладной программы на основании информации, соответствующей объекту в исходном файле данных.42. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.34.43. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и предыдущей версией прикладной программы, причем исходный файл данных содержит список свойств объекта, отображаемого прикладной программой или являющегося частью прикладной программы, при этом способ содержит этапы, на которыхобеспечивают объектный водяной знак версии для объекта, отображаемого прикладной программой или являющегося частью прикладной программы, в упомянутом списке свойств объекта исходного файла данных, причем объектный водяной знак версии указывает самую младшую версию прикладной программы, которая может интерпретировать все свойства, содержащиеся в упомянутом объекте,сравнивают объектный водяной знак версии упомянутого объекта с версией объекта в действующей версии прикладной программы, чтобы определить, соответствует ли объект в исходном файле данных предыдущей версии прикладной программы, изагружают исходный файл данных в действующую версию,причем если на этапе сравнения определено, что объект в исходном файле данных соответствует предыдущей версии, то этап загрузки содержит этапы, на которыхпреобразуют старую информацию, соответствующую объекту в исходном файле данных, в формат действующей версии изагружают информацию, преобразованную на этапе преобразования, в действующую версию.44. Способ по п.43, отличающийся тем, что список свойств объекта содержит массив списков свойств объекта.45. Способ по п.43, отличающийся тем, что дополнительно содержит этапы, на которыхотслеживают позицию объектов в массиве списков свойств объекта иобновляют массив списков свойств объекта на основании позиции объектов, отслеженных на этапе отслеживания.46. Способ по п.43, отличающийся тем, что дополнительно содержит этапы, на которыхсохраняют информацию, преобразованную на этапе преобразования, исохраняют непреобразованную старую информацию из исходного файла данных.47. Способ по п.43, отличающийся тем, что дополнительно содержит этапы, на которыхсохраняют информацию, преобразованную на этапе преобразования,генерируют информацию, которая соответствует старой информации из исходного файла данных, исохраняют информацию, сгенерированную на этапе генерации.48. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.43.49. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и предыдущей версией прикладной программы, причем исходный файл данных содержит список свойств объекта, отображаемого прикладной программой или являющегося частью прикладной программы, при этом способ содержит этапы, на которыхобеспечивают объектный водяной знак версии для объекта, отображаемого прикладной программой или являющегося частью прикладной программы, в упомянутом списке свойств объекта исходного файла данных, причем объектный водяной знак версии указывает самую младшую версию прикладной программы, которая может интерпретировать все свойства, содержащиеся в упомянутом объекте,сравнивают объектный водяной знак версии с версией объекта в действующей версии прикладной программы, чтобы определить, соответствует ли объект в исходном файле данных предыдущей версии прикладной программы, изагружают исходный файл данных в действующую версию,причем если на этапе сравнения определено, что объект в исходном файле данных соответствует предыдущей версии, то этап загрузки содержит этапы, на которыхопределяют, содержит ли предыдущая версия удаленный элемент данных, который был удален из действующей версии,игнорируют старую информацию в исходном файле данных, соответствующую удаленному элементу данных, если на этапе определения определено, что предыдущая версия содержит удаленный элемент данных, изагружают информацию из исходного файла данных, которая соответствует элементу данных, отличному от удаленного элемента данных.50. Способ по п.49, отличающийся тем, что удаленный элемент данных содержит свойство объекта.51. Способ по п.49, отличающийся тем, что удаленный элемент данных содержит объект.52. Способ по п.49, отличающийся тем, что дополнительно содержит этапы, на которыхсохраняют измененную версию исходного файла данных исохраняют информацию, соответствующую удаленному элементу данных исходного файла данных.53. Способ по п.52, отличающийся тем, что информация, соответствующая удаленному элементу данных исходного файла данных, содержит одно из: информацию, выведенную из значений по умолчанию, либо информацию, основанную на других свойствах в действующей версии.54. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.49.55. Способ загрузки исходного файла данных, который должен быть совместим с действующей версией и предыдущей версией прикладной программы, причем исходный файл данных содержит список свойств объекта, отображаемого прикладной программой или являющегося частью прикладной программы, при этом способ содержит этапы, на которыхобеспечивают объектный водяной знак версии для объекта, отображаемого прикладной программой или являющегося частью прикладной программы, в упомянутом списке свойств объекта исходного файла данных, причем объектный водяной знак версии указывает самую младшую версию прикладной программы, которая может интерпретировать все свойства, содержащиеся в упомянутом объекте,сравнивают объектный водяной знак версии с версией объекта в действующей версии прикладной программы, чтобы определить, соответствует ли упомянутый объект в исходном файле данных предыдущей версии прикладной программы, изагружают исходный файл данных в действующую версию,причем если на этапе сравнения определено, что объект в исходном файле данных соответствует предыдущей версии, то этап загрузки содержит этапы, на которыхопределяют, содержит ли действующая версия измененный элемент данных, относящийся к старой информации в исходном файле данных,преобразуют старую информацию из исходного файла данных в информацию, соответствующую измененному элементу данных, если на этапе определения определено, что действующая версия содержит измененный элемент данных, относящийся к старой информации в исходном файле данных, изагружают информацию, преобразованную на этапе преобразования, в действующую версию.56. Способ по п.55, отличающийся тем, что измененный элемент данных содержит свойство объекта.57. Способ по п.55, отличающийся тем, что измененный элемент данных содержит объект.58. Способ по п.55, отличающийся тем, что дополнительно содержит этап, на котором сохраняют измененную версию исходного файла данных, причем этап сохранения содержит этапы, на которыхсохраняют информацию, соответствующую измененному элементу данных,преобразуют на этапе второго преобразования информацию, соответствующую измененному элементу данных, в информацию, соответствующую старой информации и считываемую предыдущей версией, исохраняют преобразованную информацию, полученную на этапе второго преобразования.59. Считываемый компьютером носитель, имеющий выполняемые компьютером команды для осуществления способа по п.55.60. Файл данных, считываемый действующей версией прикладной программы и более поздней версией прикладной программы, содержащийобъект, отображаемый прикладной программой или являющийся частью прикладной программы,массив списков свойств объекта, отображаемого прикладной программой или являющегося частью прикладной программы, имеющий, по меньшей мере, одно известное свойство, связанное с упомянутым объектом, причем известное свойство известно действующей версии, и имеющий, по меньшей мере, одно неизвестное свойство, связанное с упомянутым объектом, причем неизвестное свойство неизвестно действующей версии, иобъектный водяной знак версии, указывающий самую младшую версию прикладной программы, которая может интерпретировать все свойства, содержащиеся в объекте,причем действующая версия прикладной программы способна сравнивать объектный водяной знак версии с номером версии, связанным с действующей версией, и игнорировать неизвестное свойство в случае определения, что объектный водяной знак версии больше номера версии, связанного с действующей версией.61. Файл данных, считываемый действующей версией прикладной программы и предыдущей версией прикладной программы, содержащийобъект, отображаемый прикладной программой или являющийся частью прикладной программы,массив списков свойств объекта, отображаемого прикладной программой или являющегося частью прикладной программы, имеющий, по меньшей мере, одно свойство, связанное с упомянутым объектом и соответствующее предыдущей версии,объектный водяной знак версии, указывающий самую младшую версию прикладной программы, которая может интерпретировать все свойства, содержащиеся в упомянутом объекте,причем действующая версия прикладной программы способна сравнивать объектный водяной знак версии с номером версии, связанным с действующей версией, и обновлять другое свойство, связанное с упомянутым объектом, и соответствующее действующей версии, на основании свойства, по меньшей мере, одного свойства в файле данных, в случае определения, что объектный водяной знак версии меньше номера версии, связанного с действующей версией.

Область техникиНастоящее изобретение в целом относится к компьютерным системам и программам. В частности, настоящее изобретение относится к системе и способу, обеспечивающим формат файла, совместимый с предыдущей, действующей и будущей версиями прикладной программы.Предшествующий уровень техникиКомпьютерные прикладные программы в общем случае используются для осуществления многочисленных задач, выполняемых на компьютере. Прикладную программу можно использовать для создания и изменения файла данных, в котором хранится информация конкретного предмета прикладной программы. Например, можно создать документ с использованием прикладной программы настольной издательской системы. Документ может содержать многочисленные отдельные элементы, например заголовки, текст, графику, стили, шрифты и т.д. Прикладную программу издательской системы можно использовать для создания файла данных, в котором хранится вся информация об этом конкретном документе.Каждая прикладная программа, которая сохраняет файлы в компьютерной системе, должна определять формат, в котором сохраняются данные. Существует много способов сохранения данных, начиная от сохранения «памятийных образов» данных до сохранения данных в виде, согласованном с промышленным стандартом. Кроме того, компьютерные прикладные программы непрерывно обновляются и изменяются, чтобы можно было пользоваться новейшими особенностями и достижениями в технологии. Конечные пользователи обычно получают доступ к обновлениям и изменениям благодаря выпуску обновленных версий прикладной программы. Формат файла, используемый обновленной версией прикладной программы, должен быть совместим с предыдущими и будущими версиями. Однако обновленная версия обычно использует формат файла, отличный от используемого предыдущими версиями, поскольку новые особенности в обновленной версии требуют записи в файл данных новых данных. Между двумя разными версиями прикладной программы могут возникать конфликты, поскольку в результате изменения формата файла предыдущим версиям может не удаваться читать файлы обновленной версии.Термин «объект», используемый в данном описании, относится к сущности, имеющей характеристики и отображаемой прикладной программой и являющейся частью прикладной программы или частью данных, сохраняемых/обрабатываемых программой. Примером объекта, отображаемого прикладной программой, является текстовое поле, содержащееся в окне прикладной программы, в которое пользователь может вводить текст. Характеристики текстового поля могут включать в себя его цвет, шрифт текста и размер символов текста в пунктах. Примером объекта, который является частью прикладной программы, является «памятийное представление» («представление в памяти») животного, и его характеристики могут включать в себя цвет животного, количество ног и признак плотоядности. Это «памятийное представление» можно реализовать в виде структуры данных, элементы которой выражают характеристики. Примером такой структуры данных является структура данных «класс» языка С++. Характеристики объекта называют свойствами объекта. Каждое свойство объекта обычно имеет значение. Например, свойство «цвет» может иметь значение «красный».Пример объекта 100 показан на фиг.1. Объект 100 может содержать границу 102 и текст 104. Объект 100 может иметь шесть свойств, характеризующих границу 102 и текст 104. Граница 102 может иметь свойства «стиль границы» и «размер границы». Текст 104 может иметь свойства «шрифт», «размер символов текста», «выравнивание» и «стиль текста». Значения по умолчанию для границы 102 и текста 104 могут указывать, что «стиль границы» = «сплошная», «размер границы» = 4 пункта, «шрифт» текста = Times New Roman, «размер символов текста» = 20 пунктов, «выравнивание» текста = «по левому краю» и «стиль текста» = «не курсив».В прикладной программе значения по умолчанию для объектов и свойств могут быть установлены при первоначальном программировании. В ходе работы программы значения по умолчанию могут изменяться и сохраняться в файле данных. Например, в программе рисования, которая может отображать объекты, например прямоугольники и треугольники, пользователь может изменять свойства объекта. Согласно фиг.1 свойства объекта 100 могут изменяться таким образом, что сплошная граница сменяется пунктирной границей, а стиль текста меняется на курсив. Более поздние версии программы обычно могут считывать значения по умолчанию и изменения для каждого объекта. Однако при создании более поздних версий программы формат файла обычно отличается от формата файла предыдущей версии. Соответственно предыдущая версия не может читать файлы более поздней версии. В примере, приведенном в предыдущем абзаце, более поздняя версия может включать в себя новую особенность, например тень объекта 100. Добавленная особенность требует записи новых данных в файлы программы, а следовательно, изменения их формата. Предыдущая версия не может читать файлы более поздней версии, содержащие новые данные, поскольку форматы файла отличаются.Одно традиционное решение вышеозначенной проблемы состоит в ограничении новых особенностей обновленной версии, чтобы формат файла оставался совместимым с предыдущими версиями. Однако это решение может препятствовать распространению лучшего продукта среди пользователей и может ограничивать функциональные возможности и производительность программы в целом.Другое традиционное решение вышеозначенной проблемы состоит в создании программы-адаптера, которая преобразует старый файл, созданный в предыдущей версии, в новый файл, совместимый с обновленной версией. Программа-адаптер также может преобразовывать новый файл в файл, совместимый с предыдущей версией. Однако это решение может создавать неудобства для пользователя и может требовать большого объема памяти и времени обработки для преобразования файлов. Кроме того, это решение может приводить к тому, что пользователь будет терять важную информацию, необходимую более новой версии программы, если будет сохранять файл с помощью предыдущей версии.Поэтому существует необходимость в усовершенствованных системе и способе, которые способны обеспечить формат файла, совместимый с предыдущей, современной и более поздней версиями прикладной программы. Имеется необходимость в расширяемом формате файла, который позволяет добавлять новые особенности в будущие версии прикладной программы, в то же время оставаясь совместимым с предыдущими версиями.Сущность изобретенияНастоящее изобретение относится в целом к системе и способу для обеспечения расширяемого формата файла, который может быть совместимым с предыдущей, современной и будущей версиями прикладной программы. Настоящее изобретение относится к расширяемому формату файла, который допускает добавление новых особенностей в будущих версиях прикладной программы, в то же время оставаясь совместимым (без изменения) с предыдущей и/или современной версиями. Соответственно настоящее изобретение дает возможность поставщику программного обеспечения обеспечивать совместимость многих версий с одними теми же файлами без ограничения особенностей, которые могут добавляться в будущие версии.Согласно одному иллюстративному аспекту настоящее изобретение предусматривает включение «водяных знаков» версии в исходный файл данных прикладной программы. Водяной знак версии файла может быть элементом исходного файла данных, указывающим те или иные свойства исходного файла данных. Например, в исходном файле данных можно обеспечить «водяной знак высокой (старшей) версии», указывающий самую высокую (старшую) версию прикладной программы, использовавшуюся для сохранения файла. В исходном файле данных можно обеспечить «водяной знак последней версии», указывающий последнюю версию прикладной программы, использовавшуюся для сохранения файла. В исходном файле данных можно обеспечить «водяной знак низкой (младшей) версии», указывающий самую низкую (младшую) версию прикладной программы, использовавшуюся для сохранения файла. В исходном файле данных можно обеспечить «водяной знак версии создания», указывающий версию прикладной программы, в которой файл был впервые создан. В исходном файле данных можно обеспечить «объектный водяной знак версии», указывающий самую высокую (старшую) версию прикладной программы для записи конкретного объекта. Каждый водяной знак версии файла может указывать изменения, добавления или удаления, произведенные в файле.Согласно другому иллюстративному аспекту настоящее изобретение предусматривает определение, как загружать или сохранять исходный файл данных, на основании информации, обеспеченной в одном или нескольких водяных знаках версии. Согласно одному иллюстративному аспекту настоящее изобретение позволяет определить, представляет ли водяной знак высокой версии в файле более новую версию, чем действующая версия прикладной программы, которая загружает или сохраняет файл. Водяной знак высокой (старшей) версии представляет более новую версию, если исходный файл данных был сохранен более новой версией прикладной программы по отношению к действующей (активной) версии. В этом случае настоящее изобретение предусматривает определение, содержит ли исходный файл данных информацию, неизвестную действующей версии. Если это так, то действующая версия прикладной программы может игнорировать неизвестную информацию, оставляя ее для использования более новым (более поздним) версиям.Согласно еще одному аспекту настоящее изобретение позволяет определять, представляет ли водяной знак высокой версии в файле более старую версию, чем действующая версия прикладной программы, которая загружает или сохраняет файл. Водяной знак более высокой версии представляет более старую версию, чем действующая версия, если исходный файл данных был сохранен более старой версией прикладной программы по отношению к действующей версии. В этом случае настоящее изобретение позволяет определять, содержит ли действующая версия новую информацию, которая основана на старой информации в исходном файле данных. Тогда новую информацию можно обновлять на основании старой информации. Дополнительно новую информацию можно сохранять для использования более старой (предыдущей), действующей и более новой (более поздней) версиями путем сохранения данных в формате более старой версии, а также в формате действующей и более новой версий.Согласно еще одному иллюстративному аспекту настоящего изобретения «памятийная» структура (структура «в памяти») прикладной программы может быть отделена от формата файла данных. Соответственно будущие версии прикладной программы могут включать в себя многочисленные новые особенности, не требующие изменения формата файла данных. Например, структуры можно перемещать в памяти, чтобы сделать их более эффективными для определенного типа процессора, но от этого они не становятся несовместимыми с другой версией из-за различий в форматах файла данных.Настоящее изобретение также позволяет минимизировать объем памяти и обработку, необходимые для загрузки и сохранения файлов данных, соответствующих другим версиям прикладной программы. Водяные знаки версии файла могут указывать, какая именно информация в файле данных соответствует другой версии. Соответственно любую обработку и преобразование можно производить только над указанной информацией.Еще один иллюстративный аспект настоящего изобретения предусматривает список свойств объекта (ССО) или массив списков свойств объекта (массива ССО) в качестве структуры файла данных. ССО или массив ССО допускает «оборот» (передачу и прием) данных с неизвестными свойствами из будущих версий путем передачи или возвращения неизвестных данных обратно в сохраненный файл данных. ССО или массив ССО можно загружать в память. При необходимости все те свойства, которые известны конкретной версии, можно перезаписать. Остальные свойства (т.е. свойства, неизвестные конкретной версии) были созданы более новой версией и могут оставаться в файле нетронутыми. С каждой структурой памяти, сохраненной в файле данных, можно связать ССО или массив ССО для сохранения этой структуры.Эти и другие аспекты, задачи и признаки настоящего изобретения явствуют из нижеследующего подробного описания предпочтительных вариантов осуществления, приведенного совместно с прилагаемыми чертежами и со ссылкой на них.Краткое описание чертежейФиг.1 — блок-схема объекта, используемого прикладной программой.Фиг.2 — блок-схема иллюстративного компьютера, пригодного для практического осуществления иллюстративного варианта осуществления настоящего изобретения.Фиг.3 — блок-схема характеристик традиционного ССО.Фиг.4 — блок-схема характеристик массива ССО согласно иллюстративному варианту осуществления настоящего изобретения.Фиг.5 — блок-схема алгоритма способа загрузки исходного файла данных согласно иллюстративному варианту осуществления настоящего изобретения.Фиг.6 — блок-схема алгоритма способа сохранения исходного файла данных согласно иллюстративному варианту осуществления настоящего изобретения.Фиг.7 — блок-схема алгоритма способа загрузки и сохранения исходного файла данных согласно иллюстративному варианту осуществления настоящего изобретения, когда в действующую версию добавлено свойство объекта, не включенное в предыдущую версию.Фиг.8 — блок-схема алгоритма способа загрузки и сохранения исходного файла данных согласно иллюстративному варианту осуществления настоящего изобретения, когда из действующей версии удалено свойство объекта, которое использовалось в предыдущей версии.Фиг.9 — блок-схема алгоритма способа загрузки и сохранения исходного файла данных согласно иллюстративному варианту осуществления настоящего изобретения, когда в действующей версии старое свойство объекта предыдущей версии изменено.Подробное описание изобретенияНастоящее изобретение ниже описано подробно со ссылкой на прилагаемые чертежи, в которых сходные элементы обозначены сходными позициями.Настоящее изобретение способно обеспечивать расширяемый формат файла, совместимый с предыдущей, современной и будущей версиями прикладной программы. Настоящее изобретение предусматривает включение водяных знаков версии файла в исходный файл данных прикладной программы. Водяные знаки версии файла могут указывать различные свойства исходного файла данных. Водяные знаки версии файла могут включать в себя водяной знак высокой (старшей) версии, водяной знак последней версии, водяной знак низкой (младшей) версии, водяной знак версии создания и объектный водяной знак версии. Каждый из водяных знаков версии файла может быть также обеспечен для конкретной информации в файле, например, для конкретного объекта в файле, чтобы указывать версии, которые изменили конкретную информацию. Настоящее изобретение позволяет использовать водяные знаки версии файла, чтобы определить, соответствует ли файл или конкретная информация в файле предыдущей, действующей или будущей версиям прикладной программы. Соответственно настоящее изобретение позволяет загружать или сохранять исходный файл данных на основании определения.Фиг.2 иллюстрирует различные аспекты иллюстративной вычислительной среды, в которой предполагается использовать настоящее изобретение. Специалистам в данной области очевидно, что фиг.2 и соответствующее рассмотрение призваны обеспечить краткое общее описание предпочтительных компьютерного оборудования и программных модулей и что дополнительную информацию можно почерпнуть в соответствующих справочниках по программированию, руководствах пользователя и других подобных публикациях.На фиг.2 показан традиционный персональный компьютер 10, пригодный для обеспечения выполнения предпочтительного варианта осуществления настоящего изобретения. Согласно фиг.2 персональный компьютер 10 работает в сетевой среде, осуществляющей логические подключения к удаленному серверу 11. Логические соединения между персональным компьютером 10 и удаленным сервером 11 представлены в виде локальной сети 12 и глобальной сети 13. Специалистам в данной области известно, что в этой конфигурации клиент-сервер удаленный сервер 11 может функционировать как файл-сервер или компьютер-сервер.Персональный компьютер 10 содержит процессор 14, например микропроцессоры PENTIUM производства корпорации Intel, Санта-Клара, Калифорния. Персональный компьютер 10 также содержит системную память 15, включающую в себя постоянную память (ПЗУ) 16 и оперативную память (ОЗУ) 17, подключенные к процессору 14 посредством системной шины 18. Предпочтительный компьютер 10 использует BIOS 19, хранящийся в ПЗУ 16. Специалистам в данной области известно, что BIOS 19 — это набор основных процедур, которые помогают переносить информацию между элементами персонального компьютера 10. Специалистам в данной области также известно, что настоящее изобретение можно реализовать на компьютерах, имеющих другие архитектуры, например, на компьютерах, не использующих BIOS, и на использующих другие микропроцессоры.В персональном компьютере 10 локальный жесткий диск 20 подключен к системной шине 18 посредством интерфейса 21 жесткого диска. Привод 22 флоппи-диска, который используется для чтения флоппи-диска 23 или записи на него, подключен к системной шине 18 посредством интерфейса 24 привода флоппи-диска. Привод 25 CD-ROM или DVD, который используется для чтения диска 26 CD-ROM или DVD, подключен к системной шине 18 посредством интерфейса 27 CD-ROM или DVD. Пользователь вводит команды и информацию в персональный компьютер 10 с использованием устройств ввода, например, клавиатуры 28 и/или указательного устройства, например мыши 29, которое подключено к системной шине 18 посредством интерфейса 30 последовательного порта. Указательные устройства других типов (не показаны на фиг.2) включают в себя сенсорные панели, шаровые манипуляторы, перья, устройства определения позиции по положению головы оператора, перчатки для сбора цифровых данных и другие устройства, пригодные для позиционирования курсора на мониторе 31 компьютера. Монитор 31 или устройство отображения другого рода подключен к системной шине 18 посредством видеоадаптера 32.Удаленный сервер 11 в этой сетевой среде подключен к удаленному запоминающему устройству 33. Удаленное запоминающее устройство 33 обычно представляет собой запоминающее устройство большой емкости, например, жесткий диск, привод CD-ROM или DVD, магнитооптический дисковод и т.п. Специалистам в данной области известно, что программные модули, например, модули 37C и 37D прикладной программы предоставляются удаленному серверу 11 посредством компьютерно-считываемых носителей. Персональный компьютер 10 подключен к удаленному серверу 11 посредством сетевого интерфейса 34, который используется для связи по локальной сети 12.В альтернативном варианте осуществления персональный компьютер 10 также подключен к удаленному серверу 11 посредством модема 35, который используется для связи по глобальной сети 13, например Интернет. Модем 35 подключен к системной шине 18 посредством интерфейса 30 последовательного порта. Модем 35 также может подключаться к телефонной сети общего пользования (ТСОП) или сети коллективного телевизионного приема (КТП). Хотя на фиг.2 модем показан внешним по отношению к персональному компьютеру 10, специалисту в данной области известно, что модем 35 может быть внутренним по отношению к персональному компьютеру 10 и, таким образом, осуществлять связь непосредственно через системную шину 18. Важно отметить, что подключение к удаленному серверу 11 одновременно через локальную сеть 12 и глобальную сеть 13 не требуется, но всего лишь иллюстрирует альтернативные способы обеспечения линии связи между персональным компьютером 10 и удаленным сервером 11.Хотя другие внутренние компоненты персонального компьютера 10 не показаны, специалистам в данной области очевидно, что такие компоненты и соединения между ними общеизвестны. Соответственно дополнительные подробности, касающиеся внутренней конструкции персонального компьютера 10, нет нужды раскрывать в связи с настоящим изобретением.Специалистам в данной области известно, что программные модули, например, операционная система 36, программный модуль 37А приложения, программный модуль 37В обозревателя, другие программные модули 37N и данные предоставляются персональному компьютеру 10 посредством компьютерно-считываемых носителей. В предпочтительном компьютере 10 компьютерно-считываемые носители включают в себя локальные или удаленные запоминающие устройства, которые могут включать в себя локальный жесткий диск 20, флоппи-диск 23, CD-ROM или DVD 26, ОЗУ 17, ПЗУ 16 и удаленное запоминающее устройство 33. В предпочтительном персональном компьютере 10 локальный жесткий диск 20 используется для сохранения данных и программ.Программные модули 37N могут содержать прикладные программы, которые имеют файлы расширяемого формата файла согласно иллюстративному варианту настоящего изобретения. Первая прикладная программа может управлять объектом, который, в свою очередь, может содержать список свойств объекта (ССО) расширяемого формата файла. ССО может храниться в непрерывном блоке системной памяти 16. Вторая прикладная программа может обращаться к ССО объекта и может выполнять различные функции с использованием ССО, например, описанные ниже.ССО представляют собой структуру данных для сохранения данных в файле данных. Более подробные описания можно найти в патентах США №№ 5933842 и 5946696. Раскрытие этих патентов включены сюда посредством ссылки.Традиционные ССО обеспечивают структуру данных для файла данных. Эта структура данных обеспечивает сохранение информации в общем формате, полезном для обеспечения совместимости с предыдущими и будущими версиями прикладной программы. Формат ССО позволяет пропускать данные, не распознаваемые прикладной программой, и в то же время использовать данные, распознаваемые прикладной программой. Традиционные ССО могут пополняться новой информацией в новой версии прикладной программы, поскольку они допускают динамическое расширение для новых объектов и свойств.На фиг.3 описаны характеристики традиционного ССО 300. (Дополнительную информацию относительно СОО см. патенты США №№ 5933842 и 5946696.)Термин «объект», используемый в данном описании, относится к сущности, имеющей характеристики, и которая или отображается прикладной программой, или является частью прикладной программы. Примером объекта, отображаемого прикладной программой, является текстовое поле, содержащееся в окне прикладной программы, в которое пользователь может вводить текст. Характеристики текстового поля могут включать в себя его цвет, шрифт текста и размер символов текста в пунктах. Примером объекта, который является частью прикладной программы, является «памятийное представление» животного, и его характеристики могут включать в себя цвет животного, количество ног и признак плотоядности. Это «памятийное представление» можно реализовать в виде структуры данных, элементы которой выражают характеристики. Примером такой структуры данных является структура данных «класс» языка С++. Характеристики объекта называют свойствами объекта. Каждое свойство объекта обычно имеет значение. Например, свойство «цвет» может иметь значение «красный».На фиг.1 показан пример объекта 100, рассмотренный в разделе «Предпосылки изобретения». Объект 100 может содержать границу 102 и текст 104. Объект 100 может иметь шесть свойств, характеризующих границу 102 и текст 104. Граница 102 может иметь свойства «стиль границы» и «размер границы». Текст 104 может иметь свойства «шрифт», «размер символов текста», «выравнивание» и «стиль текста». Значения по умолчанию для границы 102 и текста 104 могут указывать, что «стиль границы» = «сплошная», «размер границы» = 4 пункта, «шрифт текста» = Times New Roman, «размер символов текста» = 20 пунктов, «выравнивание текста» = «по левому краю» и «стиль текста» = «не курсив».Поскольку ССО 300 использует стандартный формат, его можно использовать для внутреннего хранения свойств объекта. Например, ССО 300 может включать в себя элемент 302 «идентификатор свойства объекта» (opyid), элемент 304 «тип свойства объекта» и объект 306 «значение свойства объекта». Элемент 302 opyid может содержать числовой идентификатор, связанный с конкретным свойством. Система может поддерживать отображение всех свойств в соответствующие opyid, и это отображение может изменяться от ССО к ССО. Другими словами, каждый ССО может задавать, какое свойство выражают значения opyid, и другие ССО могут использовать одни и те же значения opyid для разных свойств. Элемент 304 «тип свойства объекта» представляет собой тип данных, например, короткое целое (2 байта), длинное целое (4 байта), строка уникода и т.д. Элемент 306 «значение свойства объекта» согласуется с соответствующим элементом 304 «тип свойства объекта». Например, согласно фиг.3, opyid «1» обозначает элемент 304 «тип свойства объекта» — короткое целое (2 байта), который, как известно системе, соответствует «цвету», и элемент 306 «значение свойства объекта», равное 0Ч00FF0000, которое в системе КЗС (красный, зеленый, синий) кодирует «красный». При ссылке на конкретное свойство используется opyid. Например, если в ССО 300 нужно свойство границы, на него ссылаются посредством opyid «2». ССО может также содержать другой ССО в качестве свойства, что позволяет создавать более сложные структуры данных.В традиционном 16-разрядном ССО элемент 302 opyid обычно занимает одиннадцать битов. В такой конфигурации ССО 300 ограничено 2048 элементами данных (предметами), поскольку ограничено одиннадцатью разрядами. В издательской системе количество объектов и свойств может значительно превосходить 2048 элементов данных. Документ издательской системы может иметь много страниц, каждая из которых может иметь много объектов. С каждым объектом может быть связано много свойств. Соответственно в ряде случаев желательно обеспечить максимальную емкость ССО. Для этого настоящее изобретение обеспечивает усовершенствованный тип ССО, «массив ССО», имеющий практически неограниченную емкость. В массивах ССО могут храниться большие объемы данных, например, все объекты документа. Для хранения меньших количеств свойств можно по-прежнему использовать ССО.Структура данных 400, отвечающая иллюстративному варианту осуществления настоящего изобретения, описана со ссылкой на фиг.4. Структура данных 400 может включать в себя корневой ССО 402. Корневой ССО 402 может включать в себя свойство 402а «максимум», свойство 402b «инвариант» и свойство 402с «массив ССО». Хотя это и не является необходимым, свойство 402а «максимум» может указывать размер свойства 402с «массив ССО» и может обеспечивать удобство выделения надлежащей памяти при считывании структуры данных 400. Свойство 402b «инвариант» может задавать особенность, где индексы массива для элементов данных в свойстве 402с «массив ССО» остаются постоянными. Другими словами, индекс массива для элемента данных в свойстве 402с «массив ССО» не будет меняться на протяжении времени жизни предмета. Соответственно новые элементы данных можно добавлять только по индексу, который в настоящее время не используется, и удаление элемента данных приводит к очистке индексной ячейки.Свойство 402с «массив ССО» может ссылаться на массив 404 ССО. Массив ССО может храниться в свойстве 402с «массив ССО» или отдельно. Массив 404 ССО может содержать свойства, другие ССО или другие массивы ССО. Согласно фиг.4 массив 404 ССО может включать в себя список свойств подобъекта (subopl) 404a-404e, причем каждый subopl 404a-404e может представлять собой свойство, ССО или другой массив ССО. Каждый subopl 404a-404e может ссылаться на элемент 406 массива. Каждый элемент 406 массива может представлять собой любое свойство, ССО или другой массив ССО. В этом примере элементы 406 массива представляют собой ССО, которые содержат идентификатор ID и строку переменной длины.Хотя на фиг.4 показан только один массив 404 ССО со связанными с ним элементами 406 массива ССО, настоящее изобретение не ограничивается такой структурой. Например, структура данных 400 может включать в себя совокупность ССО наподобие массива 404 ССО, с каждым из которых связаны элементы 406 массива ССО. В этом случае индекс 402с может ссылаться на каждый массив 404 ССО.Каждый subopl 404а-404е ссылается на свойство, объект или другой ССО по аналогии с opyid 302 (фиг.3) традиционного ССО. Однако в структуре данных 400 элементы данных в массиве 404 ССО не являются заданными конкретными opyid. Вместо этого opyid для каждого subopl 404a-404e в массиве 404 ССО может быть задан равным «-1». Тогда позицию каждого subopl 404a-404e в массиве 404 ССО можно использовать в качестве opyid. Позиции каждого subopl 404a-404e представлены на фиг.4 соответствующими указателями 405a-405e индексной позиции. Например, если нужен конкретный subopl, например, имеющий позицию «2» в массиве 404 ССО, то обеспечивается subopl 404c, соответствующий элементу данных по указателю 405с индексной позиции. Subopl 404c располагается в индексной позиции 2 в массиве 404 ССО. Соответственно структура данных 400 ссылается на конкретные ССО на основании их соответствующей индексной позиции в массиве 404 ССО. Индексная позиция конкретного subopl является его opyid. Структура данных 400 устраняет необходимость в сохранении конкретного opyid для каждого элемента, тем самым преодолевая недостатки традиционного ССО. В обычной 32-разрядной системе структура данных 400 может хранить более четырех миллиардов элементов (экземпляров) данных, поскольку количество этих элементов данных уже не ограничивается диапазоном opyid. (Указатели 405а-405е позиций показаны в иллюстративных целях и обычно не предусмотрены в массиве 404 ССО.)На фиг.4 также показано, как можно сохранять пустые ячейки в массиве 404 ССО для будущей ссылки. Для пустой ячейки 404b в индексной позиции 405b свойство-заполнитель «oplempty» («пустой ССО») может указывать, что соответствующий элемент данных в индексной позиции 405b пуст. Oplempty может указывать, что один элемент массива пуст и должен быть пропущен. Для множественных соседних пустых элементов массива можно использовать свойство-заполнитель «oplskip=n». Oplskip=n может указывать, что следующие (n) ячеек пусты. Например согласно фиг.4 предмет 404d, соответствующий индексной позиции 405d, т.е. индексным позициям 3-5 в массиве 404 ССО, заполнен свойством-заполнителем «oplskip=3», указывающим, что следующие 3 элемента данных в массиве 404 ССО пусты и должны быть пропущены.Файл данных можно характеризовать как совокупность объектов. Каждый объект можно задать посредством ССО. С каждым СОО может быть связан описатель объекта (ОО). ОО может быть индексом к (указателем на) ССО объекта. Соответственно ОО может идентифицировать объект и не изменяется на протяжении жизни объекта. (См. поле 402b «инвариант» на фиг.4.) Для обхода структуры файла достаточно сослаться на ОО для каждого объекта без необходимости использовать информацию, специфическую для каждого объекта. ОО может оставаться неизменным (инвариантным) относительно сохранений файла, что делает ОО полезным при ссылке на объекты в памяти и/или в файле.Обычно ОО должен быть присвоен единичному объекту и не подлежит повторному использованию в случае сохранения файла более поздней версией прикладной программы. Например, современная версия прикладной программы может содержать таблицу слежения для отслеживания всех объектов, созданных программой. Если предыдущая версия загружает файл и удаляет один из объектов текущей версии, то таблица слежения текущей версии не должна будет обновляться для отражения изменений. Дополнительно, если ОО для удаленного объекта повторно используется для другого объекта, созданного в предыдущей версии, то таблица слежения текущей версии будет интерпретировать повторно используемый ОО как другой объект. Благодаря определению того, сохранен ли файл более поздней версией, настоящее изобретение позволяет избегать повторного использования ОО до того, как из-за этого возникнут проблемы. Тогда при загрузке файла более поздней версией она может видеть все объекты, которые были удалены. Это позволяет соответствующим образом видоизменить таблицу слежения. Настоящее изобретение также допускает повторное использование ОО, если файл сохранен самой высокой (старшей) версией из тех, которые использовали файл (определенная водяным знаком версии файла). Настоящее изобретение допускает, чтобы самая высокая версия определяла доступные ОО и делала их доступными для повторного использования путем удаления всех старых ссылок на объекты, которые были удалены предыдущими версиями.Для сохранения структуры памяти в ССО или массиве ССО можно задать «словарь ССО», в котором указаны значения по умолчанию и типы для каждого свойства. Количество словарей можно минимизировать, поскольку неиспользуемые свойства не занимают места. Соответственно один иллюстративный вариант осуществления настоящего изобретения предусматривает использование единственного словаря. В таком варианте осуществления все общие объекты могут иметь один и тот же opyid или индексную позицию массива для каждого идентичного элемента данных. Другой иллюстративный вариант осуществления предусматривает следующие словари: (1) словарь структуры файла, который может включать в себя все свойства, относящиеся к структуре файла (т.е. корень дерева ССО); (2) словарь объектов страницы, который может включать в себя свойства всех объектов страницы документа издательской системы; и (3) другие словари структур, которые могут включать в себя словарь для описания объектов, содержащих текст, совместно со связанным с ним текстом или словарь описания цвета для описания цветов, используемых в публикации, и т.д. Когда свойства заданы в словаре, любой объект может ссылаться на них. Соответственно общие свойства, используемые общими объектами, одинаковы, поскольку они происходят из одного и того же словаря.ССО (и массивы ССО) могут обеспечивать преимущество сохранности или «оборота» (посылки-приема) неизвестных свойств или информации из будущих версий. Конкретная версия может загрузить исходный ССО с диска в память. Все свойства ССО, известные конкретной версии, могут перезаписываться. Остальные свойства (т.е. свойства, неизвестные конкретной версии), созданы будущей версией и могут оставаться в файле нетронутыми. Таким образом, неизвестные свойства могут переноситься обратно в сохраненный файл для использования более поздней версией. Неизвестные свойства можно игнорировать при загрузке и легко оставлять при сохранении.Использование ССО или массива ССО в качестве структуры памяти позволяет отделять «памятийную» структуру (структуру в памяти) от формата файла. Соответственно будущие версии прикладной программы могут включать в себя многочисленные новые особенности, не создавая проблем, связанных с различием форматов файла. Например, структуры можно перемещать в памяти, чтобы сделать их более эффективными для определенного типа процессора, не вызывая изменения форматов файла. С каждой структурой памяти, сохраняемой в файле, можно связать ССО для сохранения этой структуры. Отображение ССО в структуру не обязано быть взаимно однозначным. Логические объекты на диске могут становиться отдельными структурами памяти по соображениям производительности. Например, свойства гиперссылки на объекте могут храниться в таблице обратного поиска и использоваться для определения, какие другие объекты привязаны к любому данному объекту. Альтернативно множественные объекты на диске могут объединяться в единой структуре в памяти.Ниже описан со ссылкой на фиг.5 и 6 способ согласно настоящему изобретению для обеспечения совместимости между действующей версией, предыдущей версией и более поздней версией прикладной программы. Действующая (активная) версия прикладной программы — это прикладная программа, работающая в настоящее время в компьютерной системе 200 (фиг.2). Предыдущая версия прикладной программы — это любая версия прикладной программы, созданная до действующей версии. Более поздняя версия прикладной программы — это любая версия прикладной программы, созданная после действующей (активной) версии. Обычно версия прикладной программы обозначается номером. Например, первая версия прикладной программы может обозначаться как версия 1.0. Более поздние версии прикладной программы могут обозначаться большими номерами. Например, вторая версия может обозначаться как версия 2.0. Версия 1.0 является предыдущей версией по отношению к версии 2.0. Версия 2.0 является более поздней версией по отношению к версии 1.0.Настоящее изобретение предусматривает использование вышеописанных массивов ССО и традиционных ССО в качестве структуры файла данных. Однако специалистам в данной области понятно, что настоящее изобретение не ограничивается этими структурами файла.Согласно иллюстративному варианту осуществления настоящего изобретения в исходном файле данных прикладной программы можно предусмотреть водяные знаки версии файла, указывающие различные свойства исходного файла данных. Водяные знаки версии файла можно обеспечить в заголовке файла, который обеспечивает информацию о файле. Водяной знак высокой (старшей) версии можно обеспечить для указания самой высокой (самой старшей) версии прикладной программы, использовавшейся для сохранения файла. Водяной знак последней версии можно обеспечить для указания последней версии прикладной программы, использовавшейся для сохранения файла. Водяной знак низкой (младшей) версии можно обеспечить для указания самой низкой (самой младшей) версии прикладной программы, использовавшейся для сохранения файла. Водяной знак версии создания можно обеспечить для указания версии прикладной программы, которая впервые создала файл. Объектный водяной знак версии можно обеспечить в качестве свойства на каждом объекте для указания самой высокой версии прикладной программы, которую можно использовать для записи конкретного объекта. Каждый водяной знак версии файла может указывать изменения, добавления или удаления, произведенные в файле. При загрузке файла настоящее изобретение позволяет определять любые структуры данных и свойства, добавленные или измененные после сохранения файла версией, указанной водяным знаком низкой версии. Добавленные или измененные элементы данных можно затем корректировать для обеспечения их совместимости с любой версией.В ходе работы водяной знак высокой версии в файле данных можно сравнить с действующей версией прикладной программы. Благодаря такому сравнению можно определить, соответствует ли исходный файл данных действующей версии, предыдущей версии или более поздней версии прикладной программы. Поскольку прикладная программа может сохранить файл целиком, объекты в файле включают в себя характеристики файла, созданные версией, идентифицированной водяным знаком высокой (старшей) версии. Затем прикладная программа может определить, как загружать и/или сохранять исходный файл данных на основании того, соответствует ли он действующей версии, предыдущей версии или более поздней версии. Исходный файл данных может содержать список свойств объекта, массив свойств объекта или другие структуры файла.Например, версия 2.0 (более поздняя версия) прикладной программы может определить, преобразовать ли информацию на основании того, как версия 2.0 обрабатывает информацию иначе, чем версия 1.0 (предыдущая версия). Например, если версия 1.0 имела таблицу слежения для гиперссылок, а версия 2.0 размещает данные гиперссылок в самих объектах, то версия 2.0 может определить, что она должна преобразовывать эту информацию при загрузке файла, записанного версией 1.0. Если же версия 2.0 является самой старой версией, записавшей файл, то версия 2.0 может определить, что в таком преобразовании нет необходимости.Водяные знаки низкой (младшей) и высокой (старшей) версии (и объектные водяные знаки) могут обновляться, если они превосходят предыдущий знак. Последняя версия для сохранения файла может быть обновлена после сохранения. Водяной знак версии создания может быть обеспечен при первоначальном создании файла и обычно не обновляется.Ниже описан со ссылкой на фиг.5 способ 500 загрузки файла данных, отвечающий иллюстративному варианту осуществления настоящего изобретения. На фиг.5 изображена блок-схема алгоритма, представляющая способ 500 загрузки исходного файла данных в прикладной программе, причем исходный файл данных должен быть совместим с действующей версией, предыдущей версией и более поздней версией. Способ 500 может содержать этап 510 обеспечения водяного знака высокой версии, водяного знака низкой версии, водяного знака последней версии, водяного знака версии создания и/или объектного водяного знака версии в исходном файле данных. На этапе 520 определяют водяной знак высокой версии в исходном файле данных. Способ также предусматривает определение водяного знака низкой версии, водяного знака последней версии, водяного знака версии создания и/или объектного водяного знака версии объектов в исходном файле данных, как показано на этапе 530. На этапе 540 водяной знак высокой версии сравнивают с действующей (активной) версией прикладной программы, чтобы определить, является ли высокая версия более новой, чем действующая версия. На основании этого сравнения способ определяет, как загружать исходный файл данных.Если сравнение на этапе 540 указывает, что водяной знак высокой версии представляет версию прикладной программы, которая не новее действующей версии, значит, исходный файл данных соответствует той же версии или предыдущей версии прикладной программы по отношению к действующей версии. В этом случае способ предусматривает переход к этапу 560, на котором исходный файл данных может быть загружен в прикладную программу без изменений. Поскольку водяной знак высокой версии соответствует той же версии или предыдущей версии прикладной программы, действующая версия может читать и понимать всю информацию, содержащуюся в исходном файле данных.Если сравнение на этапе 540 указывает, что водяной знак высокой версии представляет версию прикладной программы, которая новее действующей версии, значит, исходный файл данных соответствует более поздней версии прикладной программы по отношению к действующей версии. В этом случае способ предусматривает переход к этапу 550 для загрузки исходного файла данных. Поскольку водяной знак высокой версии соответствует более поздней версии прикладной программы, то действующая версия может оказаться неспособной читать и понимать всю информацию, содержащуюся в исходном файле данных. Соответственно исходный файл данных загружается в прикладной программе на этапе 550 путем загрузки всей известной информации и пропуска всей неизвестной информации. При использовании ССО или массива ССО в качестве структуры файла неизвестные свойства ССО, связанные с объектом, могут поддерживаться путем загрузки всех неизвестных свойств и сохранения их в блоке памяти вплоть до сохранения файла. Альтернативно программа может отслеживать местоположение исходного ССО, связанного с объектом, на диске и может считывать неизвестные свойства ССО обратно в память, что необходимо перед перезаписью файла.После этапа 550 или 560 способ переходит к этапу 570, на котором определяют, представляет ли водяной знак последней версии в исходном компьютерном файле версию прикладной программы, которая старше действующей версии. В случае отрицательного результата определения на этапе 570 способ завершается. В случае положительного результата определения на этапе 570 способ предусматривает переход к этапу 580, на котором исходный файл данных может быть преобразован путем обновления новой или измененной информации на основании старой информации в исходном файле данных. Старую информацию можно также оставить без изменений.На этапах 570 и 580 осуществляется преобразование исходного файла данных на основании водяного знака последней версии. Водяной знак последней версии может указывать дополнительную информацию из водяного знака высокой версии для определения необходимых изменений исходного файла данных. Например, положим, что в исходном файле данных записана версия 2 компьютерной прикладной программы (водяной знак высокой версии). Версия 2 может включать в себя новое или измененное свойство по отношению к версии 1. Однако если версия 1 прикладной программы является последней версией для записи файла (водяной знак последней версии), то в ней могут быть изменены некоторые данные, соответствующие новым или измененным свойствам версии 2. Соответственно, если версия 2 или более поздняя версия (действующая версия) читает исходный файл данных, то этой версии может понадобиться преобразовать данные в файле данных, поскольку последней версией для записи файла является версия 1 (данные, записанные версией 1, могут нуждаться в обновлении, чтобы соответствовать версии 2 или более поздней версии).Водяные знаки версии файла можно обеспечивать для каждого объекта и/или на всем файле. Поэтому способ 500 (и рассмотренный ниже способ 600) можно применять к объекту в исходном файле данных. Обеспечение водяных знаков версии файла для отдельных объектов позволяет оптимизировать способы загрузки и сохранения путем определения, какие объекты в файле нужно преобразовывать, а какие игнорировать. Дополнительно водяные знаки версии файла можно обеспечивать для каждого свойства и/или на всем файле или на всем объекте. Поэтому способ 500 (и рассмотренный ниже способ 600) можно применять к свойству в исходном файле данных. Обеспечение водяных знаков версии файла для отдельных свойств позволяет оптимизировать способы загрузки и сохранения путем определения, какие свойства в файле нужно преобразовывать или игнорировать.Кроме того, в действующей (активной) версии прикладной программы с каждым объектом может быть связан водяной знак действующей версии, который может представлять версии прикладной программы, которые ревизовали, изменили или удалили объект. Согласно способу 500 (и рассмотренному ниже способу 600) объектный водяной знак версии для конкретного объекта можно сравнивать с действующей версией, причем действующая версия представлена водяным знаком действующей версии для данного объекта в действующей версии. Соответственно настоящее изобретение позволяет оптимизировать определение необходимости обновления объекта в исходном файле данных, поскольку объект нуждается в обновлении, только если водяной знак действующей версии новее объектного водяного знака версии. Пусть, например, объектный водяной знак версии для конкретного объекта в исходном файле данных указывает, что версия 1.0 является последней версией для сохранения конкретного объекта. Если действующая версия 2.0 загружает файл, она будет обновлять информацию в действующей версии, которая основана на конкретном объекте, поскольку версия 2.0 новее версии 1.0. Если же для конкретного объекта в действующей версии обеспечен водяной знак действующей версии, причем водяной знак действующей версии указывает, что конкретный объект не изменился по отношению к версии 1.0, то действующая версия не будет обновлять конкретный объект, поскольку он не был изменен в версии 2.0. Таким образом, способ загрузки можно оптимизировать, исключив ненужные этапы преобразования.Со ссылкой на фиг.6 описан иллюстративный вариант осуществления способа 600 сохранения файла данных, отвечающий настоящему изобретению. Способ 600 позволяет сохранять измененный файл данных так, чтобы он был совместим с действующей версией, предыдущей версией и более поздней версией. После того как исходный файл данных был изменен действующей (активной) версией прикладной программы, измененный исходный файл данных может быть сохранен в формате, совместимом с действующей версией, предыдущими версиями и более поздними версиями. На фиг.6 изображена блок-схема последовательности операций способа 600. Способ 600 может содержать этап 605 обеспечения водяного знака высокой (старшей) версии, водяного знака низкой (младшей) версии, водяного знака последней версии, водяного знака версии создания и/или объектного водяного знака версии в исходном файле данных. На этапе 610 определяют водяной знак высокой версии в исходном файле данных. Способ также предусматривает определение водяного знака низкой версии, водяного знака последней версии, водяного знака версии создания и/или объектного водяного знака версии объектов в исходном файле данных, как показано на этапе 615. На этапе 620 водяной знак высокой версии сравнивают с действующей версией прикладной программы. На основании этого сравнения способ определяет, как сохранять измененный исходный файл данных.Если сравнение на этапе 620 указывает, что водяной знак высокой версии представляет версию прикладной программы, которая старше действующей версии, значит, исходный файл данных соответствует предыдущей версии прикладной программы по отношению к действующей версии. В этом случае способ предусматривает переход к этапу 625 сохранения измененного исходного файла данных в формате действующей версии прикладной программы. Поскольку водяной знак высокой версии соответствует предыдущей версии прикладной программы, действующая версия прикладной программы также может сохранять измененный исходный файл данных в формате, совместимом со всеми предыдущими версиями. Соответственно способ переходит к этапу 630, на котором элементы данных в измененном исходном файле данных преобразуются в формат предыдущей(их) версии(й) и сохраняются. Таким образом, измененный исходный файл данных сохраняется в форматах действующей версии и предыдущей(их) версии(й). Старая информация из предыдущей версии может быть реконструирована на этапе 630, что позволяет использовать файл в предыдущей, действующей и будущей версиях прикладной программы. Если реконструкция старой информации становится слишком трудоемкой задачей, то будущие файлы можно усекать, вставляя в файл команду, которая предписывает, что читать файл может только определенная версия или ее будущие версии. На этапе 635 водяной знак высокой версии исходного файла данных обновляется, чтобы соответствовать действующей версии прикладной программы. Затем способ переходит к этапу 655, на котором последняя версия для сохранения файла также обновляется для использования в будущем.Если сравнение на этапе 620 указывает, что водяной знак высокой версии представляет версию прикладной программы, которая новее действующей версии, значит, исходный файл данных соответствует более поздней версии прикладной программы по отношению к действующей версии. В этом случае способ предусматривает переход к этапу 640, на котором получают исходный файл данных. Затем на этапе 645 поверх исходного файла данных записывают измененный исходный файл данных. Поскольку водяной знак высокой версии соответствует более поздней версии прикладной программы, то измененный исходный файл данных может содержать информацию или данные, неизвестные действующей версии. (См., например, этап 580 на фиг.5.) Соответственно на этапе 645 только известные данные исходного файла данных перезаписываются данными модифицированного исходного файла данных. Неизвестные данные свойств не изменяются. Благодаря этому способу неизвестные данные остаются доступными более поздним версиям прикладной программы, которые могут читать эти данные. Неизвестные данные могут поддерживаться прикладной программой, согласно рассмотренному выше со ссылкой на фиг.5. Затем происходит переход к этапу 630 на котором элементы данных в измененном исходном файле данных преобразуются в формат предыдущей(их) версии(й) и сохраняются. Таким образом, измененный исходный файл данных сохраняется в форматах действующей (активной) версии и предыдущей(их) версии(й).Затем способ предусматривает определение, нужно ли обновление водяного знака низкой (младшей) версии. На этапе 650 действующую версию прикладной программы сравнивают с водяным знаком низкой (младшей) версии исходного файла данных. Если на этапе 650 определено, что действующая версия старше версии прикладной программы, представленной водяным знаком низкой версии, то способ предусматривает переход к этапу 655, на котором водяной знак низкой (младшей) версии обновляется, чтобы соответствовать действующей (активной) версии. Затем способ переходит к этапу 665, на котором последняя версия для сохранения файла также обновляется для использования в будущем. Если на этапе 650 определено, что действующая версия такая же или новее версии прикладной программы, представленной водяным знаком низкой версии, то способ предусматривает переход непосредственно к этапу 665, на котором водяной знак последней версии обновляется, чтобы соответствовать действующей версии.Если сравнение на этапе 620 указывает, что водяной знак высокой версии представляет версию прикладной программы такую же, как действующая версия, значит, исходный файл данных соответствует действующей версии прикладной программы. В этом случае способ предусматривает переход к этапу 660, на котором измененный исходный файл данных сохраняется путем записи поверх исходного файла данных. Затем способ переходит к этапу 630, на котором элементы данных в измененном исходном файле данных преобразуются в формат предыдущей(их) версии(й) и сохраняются. Таким образом, измененный исходный файл данных сохраняется в форматах действующей версии и предыдущей(их) версии(й). Затем способ переходит к этапу 655, на котором последняя версия для сохранения файла также обновляется для использования в будущем.Заметим, что этап 630 может выполняться независимо от перехода, осуществляемого на этапе 620. Соответственно свойства, соответствующие предыдущим версиям, всегда можно записать в файл, что обеспечивает совместимость файла с предыдущими версиями.В некоторых случаях способы 500 и 600 могут предусматривать дополнительный этап (не показан) отслеживания местоположения элементов массива ССО для сохранения файла после его изменения. Например, версия файла данных может содержать таблицу из четырех элементов. Однако измененная версия файла данных может иметь только три элемента. Когда прикладная программа пытается перезаписать исходный файл данных, дисковая версия содержит четыре исходных элемента, а версия памяти содержит только три элемента. При отсутствии этапа отслеживания прикладная программа может не знать, какой элемент был удален. На этапе отслеживания прикладная программа отслеживает исходный индекс всех таблиц. При считывании таблицы с диска в таблицу добавляется дополнительный элемент данных, указывающий позицию каждого элемента в таблице. Другими словами, прикладная программа отмечает, какой элемент был первым, вторым и т.д. Соответственно программа определяет, какой элемент был удален, поскольку он не существует, и может сохранять свойства будущей версии, которые могут существовать в элементах массива.Согласно способам 500 и 600 действующая версия прикладной программы может использовать любой из водяных знаков, чтобы определять, какие действия предпринимать при загрузке исходного файла данных. Использование водяного знака высокой (старшей) версии было рассмотрено выше. Водяной знак низкой (младшей) версии может давать подсказку прикладной программе и ограничивает типы преобразования, необходимые для исходного файла данных. Согласно предыдущему примеру, если известно, что в версии 1.0 таблицы гиперссылок не существует, поскольку водяной знак низкой версии указывает, что файл никогда не записывался этой версией, то процесс преобразования может безопасно пропустить все действия, связанные с таблицей гиперссылок. Водяной знак последней версии может указывать данные, известные последней версии для записи файла, а также данные, которые не известны, но находятся в файле.Объектный водяной знак версии может обеспечивать конкретную информацию для конкретного объекта, благодаря чему конкретный объект можно загружать, сохранять или преобразовывать на основании этой информации. Объектный водяной знак версии может обеспечивать информацию для конкретного объекта и может указывать самую высокую (старшую) версию файла для любого свойства, содержащегося в конкретном объекте. Пусть, например, в версии 2.0 к объекту Х было добавлено свойство гиперссылки, в версии 3.0 к объекту Х не было добавлено никаких новых свойств. Если объект Х содержит гиперссылку, записанную в версии 2.0 или в более поздней версии, то его водяной знак версии будет установлен на версию 2.0. Если объект Х не содержит гиперссылку (и потому никакое свойство гиперссылки не записано) или было записано версией 1.0, то водяной знак версии будет установлен на версию 1.0. Эту информацию можно использовать для дальнейшей оптимизации операций загрузки и сохранения в отношении каждого отдельного объекта и самой высокой (старшей) версии, понимающей все свойства в этом объекте. Например, объект Х, который был записан версией 3.0 и не содержал гиперссылку (из-за чего имеет водяной знак объекта, указывающий версию 1.0), может записываться и читаться версией 1.0, невзирая на существующие свойства будущей версии, даже если водяной знак высокой версии файла отражает версию 3.0.В целом, самая современная версия прикладной программы для сохранения файла лучше всего подходит для определения, как обрабатывать любую информацию из этой версии или предыдущих версий. Самая современная версия может читать и понимать в файле все. Самая современная версия прикладной программы определяет, какую информацию оставлять, преобразовывать или отбрасывать. Соответственно самая высокая (самая старшая) версия для записи файла определяет, отброшена или преобразована информация. Все более низкие (младшие) версии могут просто распространять любую неизвестную информацию.Наконец, чтобы изобретение работало, не требуются все этапы способов 500 и 600, показанные на фиг.5 и 6. Кроме того, некоторые этапы можно осуществлять в порядке, отличном от показанного.Со ссылкой на фиг.7-9 описаны конкретные иллюстративные варианты осуществления способов 500 и 600, отвечающих настоящему изобретению. Каждая из фиг.7-9 соответствует случаю, когда согласно способу 500 или 600 определено, что водяной знак последней версии меньше действующей версии прикладной программы (т.е. что последняя версия прикладной программы для сохранения исходного файла данных соответствует предыдущей версии прикладной программы по отношению к действующей версии) (см. этап 595 на фиг.5). Кроме того, варианты осуществления, описанные ниже со ссылкой на фиг.7-9, также соответствуют случаю, когда согласно способу 500 или 600 определено, что водяной знак высокой версии меньше действующей версии прикладной программы.На фиг.7 показана блок-схема последовательности операций способа 700 загрузки и сохранения исходного файла данных согласно настоящему изобретению с учетом того, что действующая версия имеет дополнительное свойство объекта, не включенное в предыдущую версию. На этапе 710 способа 700 значение по умолчанию для нового свойства задано в ССО для действующей (активной) версии прикладной программы. Процесс переходит к этапу 725, на котором исходный файл данных загружается без изменений. После изменения исходного файла данных он сохраняется на этапе 730. Соответственно новое свойство сохраняется для использования действующей и будущей версиями прикладной программы. Предыдущие версии будут просто игнорировать новое свойство. На этапе 740 водяной знак высокой версии обновляется до действующей версии.На фиг.8 показана блок-схема способа 800 загрузки и сохранения исходного файла данных согласно настоящему изобретению с учетом того, что действующая версия удалила свойство объекта, которое использовалось в предыдущей версии. На этапе 820 удаленное свойство игнорируется при загрузке исходного файла данных в действующей версии. При сохранении измененной версии исходного файла данных на этапе 830, удаленное свойство сохраняемого файла остается доступным для более старых версий. Хотя действующая версия не использует удаленное свойство, удаленное свойство возвращается в сохраненный файл для использования предыдущими версиями. Удаленное свойство можно возвращать в сохраненный файл, оставляя удаленное свойство в исходном файле данных, т.е. «не выписывая» удаленное свойство из файла. Альтернативно удаленное свойство может быть возвращено в сохраненный файл, перенося удаленное свойство (из исходного файла данных) обратно в сохраненный файл. Поскольку удаленное свойство известно действующей версии, значение удаленного свойства может быть выведено (получено) из значений других свойств или можно сгенерировать значение по умолчанию, представляющее удаленное свойство, что позволяет возвратить удаленное свойство в файл. На этапе 840 водяной знак высокой версии может быть обновлен до действующей версии.Пусть, например, предыдущая версия включала в себя свойство отбрасывания тени на объекте. Действующая версия может уже не поддерживать это свойство, т.е. свойство отбрасывания тени удалено из действующей (активной) версии. Более новая версия прикладной программы распознает, что свойство отбрасывания тени удалено. Однако действующая версия может по-прежнему записывать в файл свойство отбрасывания тени. На этапе 820 исходный файл данных может быть загружен и удаленное свойство отбрасывания тени может игнорироваться. При сохранении измененной версии исходного фала данных на этапе 830 файл снова может быть сохранен с удаленным свойством отбрасывания тени, доступным для более старых версий. Хотя действующая версия не использует удаленное свойство отбрасывания тени, удаленное свойство отбрасывания тени может быть возвращено в сохраненный файл для использования предыдущими версиями. Значение свойства отбрасывания тени можно определить из значения других свойств, или можно использовать значение по умолчанию. На этапе 840 водяной знак высокой версии может быть обновлен до действующей версии.На фиг.9 показана блок-схема алгоритма способа 800 загрузки и сохранения исходного файла данных согласно настоящему изобретению с учетом того, что действующая версия изменила старое свойство объекта предыдущей версии. Вместо замены старого свойства измененным свойством в действующей версии обеспечено новое свойство, представляющее измененное свойство. На этапе 910 способа 900 задается значение по умолчанию для нового свойства в ССО действующей версии прикладной программы. Старое свойство остается нетронутым. Затем на этапе 920 исходный файл данных загружается в действующую версию, и старое свойство преобразуется в новое (измененное) свойство. После изменения исходного файла данных он сохраняется на этапе 930. На этапе 930 новое свойство сохраняется независимо от старого свойства. Кроме того, на этапе 930 новое свойство преобразуется в старое свойство и сохраняется для использования предыдущей версией. На этапе 940 водяной знак высокой версии обновляется до действующей версии.Пусть, например, предыдущая версия прикладной программы использовала цветовую модель КЗС (RGB) (красный, зеленый, синий) для задания цветов объектов. Действующая версия прикладной программы может включать в себя новое свойство, позволяющее задавать цвета объектов в цветовой модели ГСЖЧ (CMYK) (голубой, сиреневый, желтый, черный), используемой профессиональными издателями. Новое свойство цвета ГСЖЧ может быть основано на старом свойстве цвета КЗС, и для каждого значения КЗС можно определить эквивалентное значение ГСЖЧ. Новый opyid можно добавить в соответствующий словарь ССО. Например, соответствующий словарь может представлять собой словарь объекта страницы для объекта страницы, другой существующий словарь или новый словарь. На этапе 910 в словаре ССО может быть задано значение по умолчанию для нового свойства цвета ГСЖЧ. Старое свойство КЗС остается неизменным. На этапе 920 исходный файл данных может быть загружен в действующую версию, и новое свойство цвета ГСЖЧ может быть обновлено на основании старого свойства КЗС объекта. После изменения исходного файла данных, оно может быть сохранено на этапе 930. На этапе 930 новое свойство цвета ГСЖЧ может быть сохранено независимо от старого свойства КЗС из исходного файла данных. Новое свойство ГСЖЧ может быть преобразовано в соответствующее старое свойство КЗС и сохранено в файле. Соответственно новое свойство цвета ГСЖЧ может быть сохранено для использования действующей и будущей версиями прикладной программы. Предыдущие версии будут просто игнорировать новое свойство цвета ГСЖЧ. На этапе 940 водяной знак высокой версии может быть обновлен до действующей версии.Способ, отвечающий настоящему изобретению, может также разрешать несоответствия между двумя версиями прикладной программы, которые сохранены в файле данных. В рассмотренном выше примере ГСЖЧ-КЗС предыдущие версии могут читать файл, поскольку более поздняя версия будет преобразовывать новое свойство цвета ГСЖЧ в соответствующее свойство КЗС. Однако если последняя версия для записи файла старше, чем действующая версия и высокая версия для записи файла, могут возникать несоответствия. Действующая версия может представлять собой ту же версию или более позднюю версию, чем высокая версия для записи файлов. Если высокая версия, которая не является последней версией для записи файла, распознает новое свойство цвета ГСЖЧ, то она будет записывать в файл данных значение нового свойства цвета ГСЖЧ, а также соответствующее значение свойства цвета КЗС. Кроме того, если последняя версия для записи файла распознает только свойство цвета КЗС, то она будет записывать в файл данных свойство цвета КЗС. Когда файл данных загружается в действующую версию, которая поддерживает новое свойство цвета ГСЖЧ, свойство цвета ГСЖЧ в файле данных соответствует старой информации. В файле данных существуют две версии информации свойства цвета, поскольку высокая версия записала в файл данных значение свойства цвета ГСЖЧ, а последняя версия записала в файл данных значение свойства цвета КЗС. Значения КЗС и ГСЖЧ не совпадают, поскольку последняя версия для записи файла обновила значение КЗС, но оставила значение неизвестного свойства ГСЖЧ. При загрузке файла в действующую версию можно определить последнюю версию для записи файла (см. этап 570 на фиг.5). На основании этой информации можно определить, что значение свойства цвета ГСЖЧ устарело и что значение свойства цвета КЗС должно быть загружено и преобразовано в обновленное значение свойства цвета ГСЖЧ.Объект является совокупностью свойств. Соответственно изменения объекта в разных версиях прикладной программы могут быть отражены изменениями в свойствах, которые соответствуют объекту. При загрузке или сохранении файла данных, содержащего объект, этапы способов 700, 800 и 900 могут повторно выполняться для отдельных свойств объекта.Вариант осуществления настоящего изобретения можно использовать как часть издательской системы, известной как Microsoft reg; Publisher, доступной от корпорации Microsoft reg;, Редмонд, Вашингтон. Эта издательская система позволяет пользователю редактировать документы и вставлять различные объекты, содержащие графические данные, текстовые данные, данные электронной таблицы или другого рода данные. Кроме того, эта система позволяет пользователю изменять свойства объектов. Система может иметь несколько заранее заданных типов объектов, которые имеют заранее заданные свойства, которым присвоены стандартные значения (значения по умолчанию). Каждый тип объекта может отличаться набором свойств и/или значениями свойств. Каждый объект может быть примером своего типа объекта. При этом настройки объекта в его исходной форме могут быть легко доступны. Хотя вариант осуществления описан применительно к издательской системе, специалисту в данной области очевидно, что описанные здесь приемы можно применять к практически неограниченному количеству других типов систем.Настоящее изобретение можно использовать совместно с аппаратным и программным обеспечением, которое осуществляет вышеописанные функции обработки. Специалистам в данной области очевидно, что описанные здесь системы, способы и процедуры могут быть реализованы в программируемом компьютере, программном обеспечении, выполняемом на компьютере или цифровых схемах. Программное обеспечение может храниться на компьютерно-считываемых носителях. Примерами компьютерно-считываемых носителей могут служить флоппи-диск, ОЗУ, ПЗУ, жесткий диск, сменные носители, флэш-память, карта памяти, оптические носители, магнитооптические носители, CD-ROM и т.д. Цифровые схемы могут включать в себя интегральные схемы, матрицы логических элементов, крупноблочную логику, программируемую пользователем логическую матрицу (FPGA) и т.д.Хотя выше были подробно описаны конкретные варианты осуществления настоящего изобретения, описание носит исключительно иллюстративный характер. Специалисты в данной области могут предложить различные видоизменения и соответствующие эквивалентные этапы раскрытых аспектов иллюстративных вариантов осуществления, помимо вышеописанных, не выходя за рамки сущности и объема настоящего изобретения, заданных в нижеследующей формуле изобретения, объем которой следует рассматривать как широчайшую интерпретацию, призванную охватывать все подобные видоизменения и эквивалентные структуры.