• 締切済み

XML Schemaによる Web入力データの検証方法

XMLSchemaを使用して、Webフォームで入力した内容が 正しいかどうか検証をしようと思っています。 実現可能でしょうか。 また、可能な場合具体的な方法を教えていただけないでしょうか。 環境 W2KServer IIS5 ASP MSXML4.0 VBのCOM 1.Webフォーム(HTML)で入力した内容を元に、XMLを生成します。 (HTMLのNAME属性と、XMLの要素名を照らし合わせて、XMLを生成します) 2.サーバ側で、生成したXMLと、データ検証用XMLSchemaを使用して、データを検証します。 3.検証のエラー内容により、ブラウザにエラーメッセージを返します。 例)○○が未入力です。○○の文字数が不正です。   日付の形式に誤りがあります。 XMLSchemaで行いたいデータ検証は以下の通りです。 (1)相関チェック (2)日付チェック(現在の日付より前の日付はNGなど) (3)文字数チェック (4)型チェック(数字、文字) (5)未入力チェック (3)~(5)は可能だと思うのですが、(1)(2)はプログラムで制御するしかないと思っています。 本来このような入力チェック処理は、JavaScriptやASPなどで制御すると思います。 今回のシステムの要件は、 「申請手続きをWebから行い 申請情報をサーバ側にXMLとして保存する」 というもので、プログラムを変えずに、申請様式を追加することによって、様々な申請に対応できるという汎用的なものを目指しています。 そこで、入力チェックのコードも、申請様式とセットでXMLSchemaを使用して作成出来ないかと思ったのですが、具体的な資料が無くこまっていました。 よろしくお願いいたします。

  • 7890
  • お礼率0% (0/1)
  • XML
  • 回答数1
  • ありがとう数10

みんなの回答

回答No.1

> (3)~(5)は可能だと思うのですが、(1)(2)はプログラムで制御するしかないと思っています。 おっしゃる通りですが、(2)もSchemaで範囲指定すれば可能なのですが、ちょっと難しいですね。 尚、Schema validatorに関して私はMSのものは使ったことがありませんが、Schema自体の記述は同じで、processorの使用手順も同じだと思いますので参考までに。 (1) Schemaオブジェクトの生成 (2) Schemaオブジェクトを設定 (3) 妥当性チェック こんなところでしょう。

関連するQ&A

  • XML Schemaの名前空間

    XML Schemaを利用する際、名前空間としてhttp://www.w3.org/2001/XMLSchemaを定義する必要があります。上記の末尾に.xsdを追加し、ブラウザで開くと、組み込みデータ型が定義してあるファイルを参照できます。XML Schemaを利用してXMLの検証を行うアプリは、名前空間を元にこのファイルを参照して、組み込みデータ型の検証を行うのでしょうか。いまいち挙動がわかりません。

    • 締切済み
    • XML
  • web.xmlの中の<web-app>についてなんですが

    こんばんは。<web-app>についてなんですが、 <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee/web-app_2_5.xsd" version="2.5"> といった類の内容をよくみかけますし、当たり前のように記述されていますが、 version="2.5"(これはサーブレットのバージョンが2.5という事でいいのでしょうか?)のところをversion="100" とかにしても動きますし、xml:schemaLocationのところにでたらめなurlを入れても動きますし、<web-app>だけでも動きますが、 <web-app>だけでは、なにか都合の悪いことでもあるのでしょうか。

  • フォームに入力した内容をXMLに生成させるプログラムを作りたいと考えて

    フォームに入力した内容をXMLに生成させるプログラムを作りたいと考えています。 いつもお世話になります。 WEBサイトの問い合わせフォームの様な形式で、 各フォームに内容を入力すると、指定のフォルダにXMLが生成される というプログラムをCGIを使って作りたいと考えておりますが、 ネットで調べてみた所、具体的なサイトがありませんでした。 例えば、HTMLベースのフォームに下記の入力フォームがあるとします。  入力フォーム1:名前  入力フォーム2:住所  入力フォーム3:電話番号 上記を入力して生成ボタンをクリックすると、  <name>なまえ</name>  <addr>○○町三丁目</addr>  <phone>123-4567</phone> というXMLが指定のフォルダに生成されるというプログラムです。 また、既に指定フォルダにXMLが存在している場合は、入力フォームに 既にあるXMLの項目が表示され、編集できるようにしたいと考えております。 当方、PHP、Perlは初級程度ですが、もし同じような仕組みを公開している サイト等が御座いましたらご教授ください。 宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • XMLについて

    HTMLで書かれたソースデータの中にはWebページ上で表示されている文字が記述されているじゃないですか?XMLで書かれたソース内にもそのような文字がすべて記述されているのですか? XMLを用いてWebページを作るということができるのでしょうか? XMLを使用しているページを知っていたら教えてください。お願いします。

    • ベストアンサー
    • XML
  • XMLからデータセットへ

    こんにちは 初めての質問です。 今XML形の文字列があります。 string strXML = @" <dataset1> <table1> <column1>a</column1> <column1>b</column1> <column1>c</column1> <column1>d</column1> <column1>e</column1> <column1>f</column1> </table1> </dataset1>"; この文字列をXMLファイルとして保存します。 XmlDocument xml = new XmlDocument(); xml.LoadXml(strXML); xml.Save(@"C:\test.xml"); 保存したXMLファイルをデータセットで読み込みます。 DataSet ds = new DataSet(); ds.ReadXml(@"C:\test.xml"); 以上の流れでデータセットの作成はできますが、 一回XMLファイルを保存しないといけません。 何とか保存しないで、文字列から直接データセットを生成する方法はありますか? よろしくお願いします。

    • ベストアンサー
    • XML
  • ASP.NET web アプリケーションでの入力検証に関して質問です

    ASP.NET web アプリケーションでの入力検証に関して質問です 当方.NET、オブジェクト指向言語初心者です 検討違いなことを質問しているかもしれませんが 回答いただけたら幸いです 以下を使用しています visual studio 2008 .NET Framework 3.5 C# 新規プロジェクト作成時に ASP.NET web アプリケーションを選択し、 (ASP.NET MVC等ではなく) TextBox Button を配置し Buttonを押下した時に TextBoxに何も入力されていなかった場合 エラーメッセージを表示するような入力検証を System.ComponentModel.DataAnnotations を用いて行いたいと考えています (RequiredFieldValidatorではなく) Q1 新規プロジェクト作成時にASP.NET web アプリケーションを選択した場合 System.ComponentModel.DataAnnotations を用いて入力検証はおこなえるのでしょうか? (webで検索したところASP.NET MVCやSilverlightのサンプルはあったのですが・・・) Q2 Q1がYESの場合 具体的にはどう実装すればよいのでしょうか? 以下にソースを記載します ■Defaoult.Aspx <%@ Page Title="ホーム ページ" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %> <asp:Content ID="HeaderContent" runat="server" ContentPlaceHolderID="HeadContent"> </asp:Content> <asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent"> <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="RequiredFieldValidator"></asp:RequiredFieldValidator> <br /> <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" /> </asp:Content> ■Default.aspx.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.ComponentModel.DataAnnotations;  //←※ namespace WebApplication2 { public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void Button1_Click(object sender, EventArgs e) { } } } ※ 参照の追加で System.ComponentModel.DataAnnotations を追加して usingで定義するところまでは検討がつきました 以上、宜しくお願い致します

  • FireFoxにてPHPで生成したをXML表示するには?

    PHPにてXML文書を生成して、それをXMLデータを読み取るFlashにデータを渡す処理を作成しました。 そこで、作成されるXML文書を確認するため、 IE7にて、http://hoge.ne.jp/xml.phpと入力してXMLのツリー上になっていることを確認しました。 ですが、ブラウザをFireFoxに切り替えたら文字化けされた(?)文書が表示されるのみです。 ためしに生成されたソースをそのまま、サーバに上げたらツリーが表示されました。 FireFoxでもIEと同様にXMLをツリー形式で見るにはどのようにしたらいいのでしょうか? 出来るなら、ブラウザ関係なく見れるのが好ましいですが、 最低限FireFoxだけでもいいので表示したいと思っています。 わかる方がおられたらご教示ください。 以上、よろしくお願いします。

  • XMLを使用してウェブページを自動で生成する方法はありますか?

    XMLを使用してウェブページを自動で生成する方法はありますか? <body> 北海道、青森、岩手、(略)、沖縄 </body> と記述されているページを <body> <a href="hokkaido.php">北海道</a>、青森、岩手、(略)、沖縄 </body> と自動生成したいのですが。 仮にDBに北海道のデータが登録された場合、テキスト表示の部分を上記の様に更新し、そのリンクから登録されたデータを閲覧出来るようにしたいのですが一般的にはどんな方法が使われていますか? XMLでこのような事は実現可能でしょうか? アドバイスがありましたら宜しくお願いします。

    • ベストアンサー
    • XML
  • データの入力

    Excel2013を利用しています。 表を作成して91-12-17や91-11-10等のデータを入力すると 1991/12/17や1991/11/10等の日付に変換されて表示されます。ある特定のデータのみが日付表示になっているようだったので入力規則でリスト作成して元の値の所に91-12-17,91-11-10を入力しても91-12-17や91-11-10がリストに反映されません。 ある特定のデータのみが何か規制が掛かって日付表示になっているのでしょうか(素人でわかりませんけど) 良い改善方法はないでしょうか? 現在は特定のデータはセルの書式設定を文字列に指定して入力しています。 ※OKWAVEより補足:「EPSON社製品」についての質問です。

  • xmlデータの編集について

    xmlデータの編集について ******************************************* <?xml version="1.0" encoding="UTF-8" ?> <data> <member_list> <name>メンバー1</name> <age>10歳</age> <email>aaa@a.ne.jp</email> </member_list> <member_list> <name>メンバー2</name> <age>20歳</age> <email>bbb@a.ne.jp</email> </member_list> </data> ***************************************** 上記のような"member.xml"があり、これらをフォームから入力された内容に書き換えたい場合は、どういった処理を行えばいいのでしょうか? if(isset($_POST['add'])){ $xml=simplexml_load_file("member.xml"); $addElm = $xml -> addChild("member_list"); $addElm ->addchild("name",$_POST['names']); $addElm ->addchild("age",$_POST['age']); $addElm ->addchild("email",$_POST['email']); $xml ->asXml("member.xml"); } 追加でしたら上記のような"simplexml"の"addchild"でいけるのですが、書き換える場合の処理がわかりません。 どなたか、ご教授下さいませ。

    • 締切済み
    • PHP

専門家に質問してみよう