问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android怎么用Schema验证xml

发布网友 发布时间:2022-04-19 07:52

我来回答

1个回答

热心网友 时间:2022-04-19 09:21

这里解决下方案如下:

[note.xml]

Xml代码
<?xml version="1.0"?>
<note xmlns="
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>

网上的例子就是在这里没设置对xmlns,这里的xmlns一定要和下面note.xsd中的targetNamespace和xmlns一致

[note.xsd]

Xml代码
<?xml version="1.0"?>
<xs:schema xmlns:xs=""
targetNamespace="/schema/note"
elementFormDefault="qualified">
<xs:element name="note">
<xs:complexType>
<xs:sequence>
<xs:element name="to" type="xs:string" />
<xs:element name="from" type="xs:string" />
<xs:element name="heading" type="xs:string" />
<xs:element name="body" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>

[java]

Java代码
String configFileLocation = "/note.xml";
String xsdFileLocation = "/note.xsd";
InputStream configInputStream = this.getClass().getResourceAsStream(configFileLocation);
if (configInputStream == null) {
throw new IllegalArgumentException("can not find resource[" + configFileLocation + "]");
}

InputStream xsdInputStream = this.getClass().getResourceAsStream(xsdFileLocation);
if (xsdInputStream == null) {
throw new IllegalArgumentException("can not find resource[" + xsdFileLocation + "]");
}

DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
Schema schema = schemaFactory.newSchema(new SAXSource(new InputSource(xsdInputStream)));
factory.setSchema(schema);

DocumentBuilder builder = factory.newDocumentBuilder();

builder.setErrorHandler(new ErrorHandler() {

@Override
public void warning(SAXParseException exception) throws SAXException {
throw new RuntimeException(exception);
}

@Override
public void fatalError(SAXParseException exception) throws SAXException {
throw new RuntimeException(exception);
}

@Override
public void error(SAXParseException exception) throws SAXException {
throw new RuntimeException(exception);
}
});

document = builder.parse(configInputStream);

System.out.println(document);
转载,仅供参考。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
这是真的黑米还是假的? 牡丹江市区好玩的地方 显卡问题,现在的显卡显存一般都为多少? 现在主流显存是多少?512M5年后会过时吗 主流家用电脑配置家用电脑买什么样配置比较好 现在的电脑显存一般是多少? 安顺万家领秀城怎么样?好不好?值不值得买? 请问下面一道题怎么加标点 花园里 牡丹 月季 玫瑰 芍药 开得美丽极了... 是什么把大地打扮的这么漂亮呢 是雪呀 这两句话怎么写标点符号? 通州有那些私立高中啊 跑滴滴是租车好还是以租代购好? 微信转账系统繁忙暂时无法转账怎么回事 微信转账对方收不到显示系统繁忙该怎么解决 在沈阳有滴滴专车吗?收入怎么样? 手机遥控器连接了电视,怎么退出 哦,我想问问就是我用手机遥控电视后怎样转回到电视遥控机上 楼下过道顶棚有水印,但是楼上有我们两家怎么知道是哪家漏的水 我家楼下屋顶有水印,怀疑是我家漏水但是我家没有漏水的地方,我找物 客厅天花板上有两片像是水渍,但摸的是干的。 楼下房间的屋顶有水印,怀疑我家漏水,排除水管及地暖原因,还有什么原因会造成以上情况,下图为楼下屋顶 客厅和两间卧房的房顶上都有4-6处直径2-3厘米的*水印,请知道的人告诉是什么情况 我家住二楼,一楼客厅天花板水印,但是我家没有漏过水,地暖也没问题,水印已经干了,不知道是什么原因? 我家楼上漏水楼下屋顶有水印,我家愿意重新刷顶,但楼下要求全屋都刷,但墙面没问题,这种要求合理吗 今天去看了我家的毛坯房(还没有收楼),发现客厅近阳台处对上的屋顶有水印(不知道是不是),这楼层水、 我要做一批纸箱,怎么选纸箱包装厂?我是山东的 楼上没装修,楼下顶板有漏水的印记是啥原因? xml的schema的错误 楼上是装修入住的,但楼下未装修就发现客厅天花板上有水印,应该怎么外理 纸箱厂的客户一般是什么类型,刚开始怎么开发客源呀,怎么样来做是最好的呢?从哪些客户入手好呢? 我家六楼,五楼说她家客厅顶上印水,说我家厕所和阳台防水没做好,非闹我们不得安,是我家原因吗? 麻烦那位大侠帮忙推荐一款主要用来拍摄视频制作MV的相机 红白色衣服干洗后会混色吗 有一款外套,很经典的,好像是红白色的,背后有“Marlboro”字样的,请问这是哪款? 红色t恤配白色外套会不会觉得怪 最新一期跑哪嘉宾穿的是以个红白色的外套那是什么牌子? 焦俊艳换了新短发像换了个人,穿白色外套内搭红色套装,有多大气? 红色外套白色打底配什么颜色的围巾好看 白色外套比较百搭还是黑色外套?搭粉色,红色,暗红,米白,灰色是白色外套好还是黑色外套好,黑白只能选 怎样利用AV3620矢量网络分析仪测同轴线的特性参量 RF信号通过同轴线转输时不同频率分别转输信号的表皮厚度怎么计算 rf1.13高温电线的最大推荐拉力是多少 电视RF同轴信号是否可用双绞线代替?具体如何完成?--为解决广电宽带入户无同轴电缆而使用原双绞线代替! 电视搭配机上盒,接AV线跟RF(同轴电缆) 哪个效果比较好? 射频电缆国家标准及相关问题 银行与客户的关系是什么? 商业银行与客户间的法律关系是什么性质的 银行工作人员说,要不找关系,要不花钱,才能抵押贷款放款快点,什么意思?现在银行都这么赚钱了吗? PAL制式的帧速率是多少? 不能在该文档实例中定位对一个支持schema类型(DTD,W3C Schema 1关于PAL制式影片帧速率的正确说法是 ( ) A24fps B 25fps C29.97fps D30fps