日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

xml验证 java代码,使用Java代码进行XML验证

發(fā)布時(shí)間:2025/3/12 asp.net 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 xml验证 java代码,使用Java代码进行XML验证 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

我需要一些代碼示例,該示例說明如何針對架構(gòu)驗(yàn)證xml文件.下面是我的XML文檔:

January

21

1983

我要針對其驗(yàn)證上述XML的架構(gòu)是:

schemaLocation="http://www.w3.org/2001/xml.xsd" />

現(xiàn)在有人可以幫助我編寫Java代碼,如果XML文檔按照我指定的模式有效,則將這些代碼作為輸入并提供適當(dāng)?shù)妮敵?#xff1f;

現(xiàn)在,我在理解以下代碼時(shí)遇到問題,例如MySAXHandler上的方法如何被調(diào)用,因?yàn)樵擃愇磳?shí)例化,并且未顯式調(diào)用方法.

誰能解釋?

而且還有什么方法可以直接傳遞文件而不是通過字符串傳遞.

代碼是-

import java.io.StringReader;

import javax.xml.XMLConstants;

import javax.xml.parsers.ParserConfigurationException;

import javax.xml.parsers.SAXParser;

import javax.xml.parsers.SAXParserFactory;

import javax.xml.transform.sax.SAXSource;

import javax.xml.validation.SchemaFactory;

import org.xml.sax.Attributes;

import org.xml.sax.InputSource;

import org.xml.sax.SAXException;

import org.xml.sax.SAXParseException;

import org.xml.sax.helpers.DefaultHandler;

public class XMLval {

public static void main(String args[])throws Exception {

SAXParserFactory spf = SAXParserFactory.newInstance();

SAXParser parser = null;

spf.setNamespaceAware(true);

try {

SchemaFactory sf =

SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

spf.setSchema(sf.newSchema(new SAXSource(new InputSource(new StringReader(schemaString)))));

parser = spf.newSAXParser();

}

catch(SAXException e) {

e.printStackTrace(System.err);

System.exit(1);

}

catch(ParserConfigurationException e) {

e.printStackTrace(System.err);

System.exit(1);

}

MySAXHandler handler = new MySAXHandler();

System.out.println(schemaString);

parser.parse(new InputSource(new StringReader(xmlString)), handler);

}

static String xmlString = "<?xml version=\"1.0\"?>" +

"" +

"January" +

"21" +

"1983" +

"";

static String schemaString ="<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +

"" +

"" +

"" +

"" +

"" +

"" +

"" +

"" +

"" +

"";

}

class MySAXHandler extends DefaultHandler {

public void startDocument() {

System.out.println("Start document: ");

}

public void endDocument() {

System.out.println("End document: ");

}

public void startElement(String uri, String localName, String qname,

Attributes attr)

{

System.out.println("Start element: local name: " + localName + " qname: "

+ qname + " uri: "+uri);

int attrCount = attr.getLength();

if(attrCount>0) {

System.out.println("Attributes:");

for(int i = 0 ; i

System.out.println(" Name : " + attr.getQName(i));

System.out.println(" Type : " + attr.getType(i));

System.out.println(" Value: " + attr.getValue(i));

}

}

}

public void endElement(String uri, String localName, String qname) {

System.out.println("End element: local name: " + localName + " qname: "

+ qname + " uri: "+uri);

}

public void characters(char[] ch, int start, int length) {

System.out.println("Characters: " + new String(ch, start, length));

}

}

解決方法:

您可以嘗試JDOM庫.

標(biāo)簽:java,validation,xml,xsd

來源: https://codeday.me/bug/20191009/1880239.html

與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

總結(jié)

以上是生活随笔為你收集整理的xml验证 java代码,使用Java代码进行XML验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。