Создать страницу на основе XML-схемы и добавить данные из XML-записи - PullRequest
0 голосов
/ 13 апреля 2009

Допустим, у меня есть система, которая хранит данные для некоторых сложных объектов в XML. Эти объекты имеют слабые отношения наследования: возможно, 4 поля являются общими для всех них, а затем еще 20, которые являются уникальными для каждого типа объекта, скажем, от 6 до 8 различных типов объектов.

Данные, которые уникальны для каждого объекта, сами по себе могут быть сложными: такие как перечисления, другие сложные типы и элементы, которые используются только условно. Каждый тип объекта имеет XML-схему для его описания.

Эта система создает запись для каждого объекта за серию шагов, и поэтому будет очень распространено иметь только частичную запись. То, что входит в каждый шаг, не определено: пользователь может заполнить столько, сколько он знает, а затем передать его по цепочке, чтобы кто-то более опытный мог его выполнить.

Я хочу создать страницу ASP.Net для отображения этих записей. С учетом номера записи (и типа) загрузите схему для этого типа в форму, а затем заполните форму из самой записи. Я не думаю, что одной записи будет достаточно для создания страницы, потому что в записи еще может не быть списка всех полей, которые я хочу включить в форму, и не будут неявно включены данные для таких типов, как перечисления.

Что было бы элегантным способом сделать это? Я уверен, что упускаю что-то очевидное в простом способе сделать это, но Xslt, вероятно, этого не сделает.

Это продолжение этого вопроса , и на данный момент оно является чисто гипотетическим. Основываясь на ответах, я могу полностью пойти другим путем.

1 Ответ

1 голос
/ 14 апреля 2009

Когда вы говорите «Xslt, вероятно, не будет сокращать его», мне интересно, какой подход Xslt вы имеете в виду.

Один из подходов состоит в том, чтобы как-то преобразовать данные экземпляра для формы. (Я не уверен, как это будет работать на практике, и, возможно, именно поэтому вы сказали, что Xslt не будет работать.)

Другой подход заключается в использовании Xslt для создания настраиваемой одноразовой схемы, адаптированной к текущему состоянию данных формы. Затем вы использовали бы эту схему для построения формы. Например, преобразованная схема исключит определения для полей, которые еще не готовы к отображению. Это звучит вполне выполнимо для меня (не то, что я занимаюсь волонтерством: -)

ОБНОВЛЕНИЕ (отвечая на комментарии): Честно говоря, я недостаточно хорошо знаю asp.net, чтобы сказать, подойдет ли его кеширование для ваших нужд. Я бы подумал, что вы не хотите кэшировать по причинам, к которым я доберусь.

Чтобы попытаться уточнить, что я имел в виду: то, что я слышал в вашем описании, заключается в том, что текущее состояние записи может повлиять на структуру формы. Например, допустимые значения для поля A могут быть ограничены значениями полей X, Y и Z, некоторые из которых могут фактически быть неизвестными и неизвестными в данный момент времени; эта двусмысленность может затруднить представление формы с помощью единой унифицированной структуры.

Я думал, что, возможно, вам не нужно ограничивать себя неизменной схемой. Если текущее состояние данных будет лучше представлено измененной схемой (например, схемой, которая отражает допустимые значения перечисления для поля A, или выбором объединения, который в настоящее время разрешен для поля B), то я предложил, возможно, преобразовать схему перед созданием формы может сделать свое дело. Что касается вашего комментария о кешировании, я был бы обеспокоен тем, что кеширование может привести к тому, что устаревшие определения форм будут обрабатываться, когда требуются более новые, из-за изменений данных и схемы. Возможно, вы могли бы избежать этого, переставляя URL-адрес пространства имен на основе текущего состояния настраиваемой схемы.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...