通过 xsd 验证 xml
Validating xml via xsd
我是 XSD 的新手,所以请帮忙。我在 SQL Server Management Studio 2008 中使用 "for xml path" 创建了一些 XML。它看起来像:
我读过一些文献,在创建这样一个 xml 之后,我应该 运行 这个:
但是没用。据我所知,将此文件保存在 xml 中并单击两次后,它应该会在浏览器中打开 xml。但事实并非如此。怎么了?主键是 ReferenceCode。我使用此查询创建了 xml:
select p.ReferenceCode
,p.LastName
,p.FirstName
,p.BirthDate
,p.BirthPlace
,(
select d.Type
,d.Series
,d.Number
,d.IssueDate
,d.IssueAuthority
from #Document d
where d.ReferenceCode = p.ReferenceCode
for xml path ('Document'),root('Documents'),Type
)
,(
select a.Type
,a.Street
from #Address a
where a.ReferenceCode = p.ReferenceCode
for xml path ('Address'),root('Addresses'),Type
)
,(
select h.Number
from #Phone h
where h.ReferenceCode = p.ReferenceCode
for xml path ('Phone'),root('Phone'),Type
)
from #Person p
for xml path ('Person'),root('Root')
提前致谢
<Root>
<Person>
<ReferenceCode>10000007462</ReferenceCode>
<LastName>Артамонова</LastName>
<FirstName>Галина</FirstName>
<BirthDate>1961-07-19</BirthDate>
<BirthPlace>РОССИЙСКАЯ ФЕДЕРАЦИЯ, д. Криуша Староюрьевского р-на Тамбовской обл.</BirthPlace>
<Documents>
<Document>
<Type>21</Type>
<Series>4508</Series>
<Number>685129</Number>
<IssueDate>2006-08-16</IssueDate>
<IssueAuthority>ОВД р-на Чертаново-Центральное г. Москвы,</IssueAuthority>
</Document>
</Documents>
<Addresses>
<Address>
<Type>1</Type>
<Street>Днепропетровская ул</Street>
</Address>
<Address>
<Type>1</Type>
<Street>Декабристов ул</Street>
</Address>
<Address>
<Type>2</Type>
<Street>Днепропетровская ул</Street>
</Address>
<Address>
<Type>2</Type>
<Street>Декабристов ул</Street>
</Address>
</Addresses>
<Phones>
<Phone>
<Number>907-09-33 </Number>
</Phone>
<Phone>
<Number>+7(903)1780367 </Number>
</Phone>
</Phones>
</Person>
</Root>
非常感谢,问题是 - 我无法使用上面的 xml 创建 xsd,请帮助我创建它。答案是 - 使用另一个版本,它被创建然后被删除,编码错误。
我自己找到了答案,我只需要通常放在 xml 上方的标题。就这么多。
我是 XSD 的新手,所以请帮忙。我在 SQL Server Management Studio 2008 中使用 "for xml path" 创建了一些 XML。它看起来像:
我读过一些文献,在创建这样一个 xml 之后,我应该 运行 这个:
但是没用。据我所知,将此文件保存在 xml 中并单击两次后,它应该会在浏览器中打开 xml。但事实并非如此。怎么了?主键是 ReferenceCode。我使用此查询创建了 xml:
select p.ReferenceCode
,p.LastName
,p.FirstName
,p.BirthDate
,p.BirthPlace
,(
select d.Type
,d.Series
,d.Number
,d.IssueDate
,d.IssueAuthority
from #Document d
where d.ReferenceCode = p.ReferenceCode
for xml path ('Document'),root('Documents'),Type
)
,(
select a.Type
,a.Street
from #Address a
where a.ReferenceCode = p.ReferenceCode
for xml path ('Address'),root('Addresses'),Type
)
,(
select h.Number
from #Phone h
where h.ReferenceCode = p.ReferenceCode
for xml path ('Phone'),root('Phone'),Type
)
from #Person p
for xml path ('Person'),root('Root')
提前致谢
<Root>
<Person>
<ReferenceCode>10000007462</ReferenceCode>
<LastName>Артамонова</LastName>
<FirstName>Галина</FirstName>
<BirthDate>1961-07-19</BirthDate>
<BirthPlace>РОССИЙСКАЯ ФЕДЕРАЦИЯ, д. Криуша Староюрьевского р-на Тамбовской обл.</BirthPlace>
<Documents>
<Document>
<Type>21</Type>
<Series>4508</Series>
<Number>685129</Number>
<IssueDate>2006-08-16</IssueDate>
<IssueAuthority>ОВД р-на Чертаново-Центральное г. Москвы,</IssueAuthority>
</Document>
</Documents>
<Addresses>
<Address>
<Type>1</Type>
<Street>Днепропетровская ул</Street>
</Address>
<Address>
<Type>1</Type>
<Street>Декабристов ул</Street>
</Address>
<Address>
<Type>2</Type>
<Street>Днепропетровская ул</Street>
</Address>
<Address>
<Type>2</Type>
<Street>Декабристов ул</Street>
</Address>
</Addresses>
<Phones>
<Phone>
<Number>907-09-33 </Number>
</Phone>
<Phone>
<Number>+7(903)1780367 </Number>
</Phone>
</Phones>
</Person>
</Root>
非常感谢,问题是 - 我无法使用上面的 xml 创建 xsd,请帮助我创建它。答案是 - 使用另一个版本,它被创建然后被删除,编码错误。
我自己找到了答案,我只需要通常放在 xml 上方的标题。就这么多。