我有XML
<getInquiryAboutListReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<inquiryAbouts>
<inquiryAbout>
<code>Code</code>
<nameKk>Something</nameKk>
<nameRu>Something</nameRu>
<documents xsi:nil="true"/>
</inquiryAbout>
</inquiryAbouts>
</getInquiryAboutListReturn>
Run Code Online (Sandbox Code Playgroud)
我想用XSLT处理它以复制所有XML
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output indent="yes" />
<xsl:template match="/">
<xsl:copy-of select="//getInquiryAboutListReturn/inquiryAbouts"/>
</xsl:template>
</xsl:stylesheet>
Run Code Online (Sandbox Code Playgroud)
如果没有<documents xsi:nil="true"/>或没有xsi:nil ="true",我怎么能复制所有的XML ?
期望的输出XML
<getInquiryAboutListReturn xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<inquiryAbouts>
<inquiryAbout>
<code>Code</code>
<nameKk>Something</nameKk>
<nameRu>Something</nameRu>
</inquiryAbout>
</inquiryAbouts>
</getInquiryAboutListReturn>
Run Code Online (Sandbox Code Playgroud) 当我使用可空的DateTime序列化ac#对象时,有没有办法将空值保留在xml文件之外而不是
<EndDate d2p1:nil="true" xmlns:d2p1="http://www.w3.org/2001/XMLSchema-instance" />
Run Code Online (Sandbox Code Playgroud) 我正在从VB.NET应用程序生成XML文件.在我尝试添加nillable元素之前,文档生成正常.我现在正在测试只有一个零元素:
<blah xsi:nil="true"></blah>
Run Code Online (Sandbox Code Playgroud)
一旦这个元素到位,我尝试在IE中查看XML文件就无法显示.我收到:
无法显示XML页面无法使用XSL样式表查看XML输入.请更正错误,然后单击"刷新"按钮,或稍后重试.
操作成功完成.处理资源时出错
如果我删除这一个元素,它再次显示正常.我在这里错过了什么?
我从服务器接收 XML,其架构将几乎每个元素都指定为:
<xs:element name="myStringElementName" type="xs:string" nillable="true" minOccurs="0"/>
<xs:element name="myIntElementName" type="xs:int" nillable="true" minOccurs="0"/>
Run Code Online (Sandbox Code Playgroud)
我试图找到一种干净的方法来转换我收到的每个元素,xsi:nil="true"当它被解组为 JAXB 对象时被标记为null。所以像这样:
<myIntElementName xsi:nil="true" />
Run Code Online (Sandbox Code Playgroud)
应该导致我的 JAXB 对象具有一个myIntElementName值为 null的属性,而不是一个JAXBElement将 nil 属性设置为 true(或任何类似内容)的对象。我对向我发送使用该nillable属性的 XML 的系统没有任何控制权,因此我需要在收到它时对其进行转换。
我有一个xml,我希望它在SQL Server中使用OpenXML提取
这是示例XML
<row>
<student_token>7</student_token>
<student_ssn>552</student_ssn>
<alternate_id>20</alternate_id>
<old_ssn xsi:nil="true" />
<alien_num xsi:nil="true" />
<last_name>A</last_name>
<first_name>B</first_name>
<middle_init xsi:nil="true" />
<drivers_license_num xsi:nil="true" />
<gpa_highschool xsi:nil="true" />
<created_dt>2006-07-13T11:15:08.320</created_dt>
<created_how>4</created_how>
<modified_dt>2008-02-14T00:00:00</modified_dt>
<modified_by>4</modified_by>
<primary_street2 xsi:nil="true" />
<primary_street3 xsi:nil="true" />
<primary_country xsi:nil="true" />
<email_address xsi:nil="true" />
<address_start_dt xsi:nil="true" />
<address_end_dt xsi:nil="true" />
<entrance_iv_dt xsi:nil="true" />
<entrance_iv_by xsi:nil="true" />
<exit_iv_dt>2006-11-02T00:00:00</exit_iv_dt>
<exit_iv_by>156</exit_iv_by>
<foreign_address_indicator>N</foreign_address_indicator>
<foreign_postal_code xsi:nil="true" />
<pin>J27841</pin>
<web_id>J08614 </web_id>
<prior_name xsi:nil="true" />
<orig_eps xsi:nil="true" />
<web_role>STU1</web_role>
<heal_limit_flag>N</heal_limit_flag>
<email_address_2>test@test.com</email_address_2>
<cellular_telephone>415</cellular_telephone>
<alt_loan_debt xsi:nil="true" />
<web_last_login xsi:nil="true" />
<foreign_country_code xsi:nil="true" /> …Run Code Online (Sandbox Code Playgroud) 我正在Powershell中读取以下文件。
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<nested1>
<level1 xsi:nil="true" />
<level2>2</level2>
</nested1>
<nested2>
<level1 xsi:nil="true" />
<level2>2</level2>
</nested2>
</root>
Run Code Online (Sandbox Code Playgroud)
使用...
[xml]$XmlDoc = get-content $XMLFile
Run Code Online (Sandbox Code Playgroud)
我想设置$ XmlDoc.root.nested1.level2,使其具有属性xsi:nil =“ true”
因此文件显示为
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<nested1>
<level1 xsi:nil="true" />
<level2 xsi:nil="true" />
</nested1>
<nested2>
<level1 xsi:nil="true" />
<level2>2</level2>
</nested2>
</root>
Run Code Online (Sandbox Code Playgroud)
非常感谢您提供的任何建议。
我有一个带有REST样式接口的应用程序,它通过POST从客户端获取XML文档.此应用程序使用Java编写,并使用XML bean处理发布的消息.
消息中字段的XML模式定义如下所示:
<xs:element name="value" type="xs:string" nillable="true" />
Run Code Online (Sandbox Code Playgroud)
如何发送符合此规范的空值?
我发送<value xsi:nil="true" />
但这导致XML解析器barf.
这是一个错误吗?
我需要nillable = "true"在xsd模式中。从我的Java代码生成此类元素的唯一方法是使用@XmlElement(nillable = true),对吗?但是在这种情况下,我将无法利用此定义,也无法检查元素是否设置为nil。该方法isNil()在JAXBElement包装器类中。
因此,我在这里有哪些选择-我想nillable = "true"在我的xsd模式中生成并能够检查它是否从我的Java代码中设置。